src/path.js
function _gpfPathRelative (from, to) {
    var length,
        splitFrom = _gpfPathDecompose(from),
        splitTo = _gpfPathDecompose(to);
    _gpfPathShiftIdenticalBeginning(splitFrom, splitTo);
    // For each remaining part in from, unshift .. in to
    length = splitFrom.length;
    while (length--) {
        splitTo.unshift("..");
    }
    return splitTo.join("/");
}
function _gpfPathRelative (from, to) {
    var length,
        splitFrom = _gpfPathDecompose(from),
        splitTo = _gpfPathDecompose(to);
    _gpfPathShiftIdenticalBeginning(splitFrom, splitTo);
    // For each remaining part in from, unshift .. in to
    length = splitFrom.length;
    while (length--) {
        splitTo.unshift("..");
    }
    return splitTo.join("/");
}
function _gpfPathRelative ( from , to ) { var length , splitFrom = _gpfPathDecompose ( from ) , splitTo = _gpfPathDecompose ( to ) ; _gpfPathShiftIdenticalBeginning ( splitFrom , splitTo ) ; // For each remaining part in from, unshift .. in to length = splitFrom . length ; while ( length -- ) { splitTo . unshift ( ".." ) ; } return splitTo . join ( "/" ) ; }
Solve the relative path from from to to

@param {String} from From path
@param {String} to To path
@return {String} Relative path
@since 0.1.9
Solve the relative path from from to to