function compareRefs(driver, base, head) {
    const baseRef = base instanceof Branch ? base.getFullName() : base;
    const headRef = head instanceof Branch ? head.getFullName() : head;

    return driver.findParentCommit(baseRef, headRef)
    .then((parentCommit) => {
        // There can be no parent commit
        return Q.all([
            parentCommit ? parentCommit.getSha() : null,
            baseRef,
            headRef
        ].map((ref) => {
            return ref ? driver.fetchWorkingState(ref) : WorkingState.createEmpty();
        }));
    })
    .spread((parent, base, head) => {
        const conflicts = _compareTrees(parent.getTreeEntries(),
                                     base.getTreeEntries(),
                                     head.getTreeEntries());

        return new TreeConflict({
            base,
            head,
            parent,
            conflicts
        });
    });
}
function compareRefs(driver, base, head) {
    const baseRef = base instanceof Branch ? base.getFullName() : base;
    const headRef = head instanceof Branch ? head.getFullName() : head;

    return driver.findParentCommit(baseRef, headRef)
    .then((parentCommit) => {
        // There can be no parent commit
        return Q.all([
            parentCommit ? parentCommit.getSha() : null,
            baseRef,
            headRef
        ].map((ref) => {
            return ref ? driver.fetchWorkingState(ref) : WorkingState.createEmpty();
        }));
    })
    .spread((parent, base, head) => {
        const conflicts = _compareTrees(parent.getTreeEntries(),
                                     base.getTreeEntries(),
                                     head.getTreeEntries());

        return new TreeConflict({
            base,
            head,
            parent,
            conflicts
        });
    });
}
function compareRefs ( driver , base , head ) { const baseRef = base instanceof Branch ? base . getFullName ( ) : base ; const headRef = head instanceof Branch ? head . getFullName ( ) : head ; return driver . findParentCommit ( baseRef , headRef ) . then ( ( parentCommit ) => { // There can be no parent commit return Q . all ( [ parentCommit ? parentCommit . getSha ( ) : null , baseRef , headRef ] . map ( ( ref ) => { return ref ? driver . fetchWorkingState ( ref ) : WorkingState . createEmpty ( ) ; } ) ) ; } ) . spread ( ( parent , base , head ) => { const conflicts = _compareTrees ( parent . getTreeEntries ( ) , base . getTreeEntries ( ) , head . getTreeEntries ( ) ) ; return new TreeConflict ( { base , head , parent , conflicts } ) ; } ) ; }
Computes a TreeConflict between to tree references. Fetches the
trees from the repo. The list of conflicts is the minimal set of
conflicts.
@param {Driver} driver
@param {Branch | String} base A branch, branch name, or SHA
@param {Branch | String} head A branch, branch name, or SHA
@return {Promise<TreeConflict>}
Computes a TreeConflict between to tree references . Fetches the trees from the repo . The list of conflicts is the minimal set of conflicts .