src/utils/conflict.js
function _getSolvedEntries(treeConflict) {
    const parentEntries = treeConflict.getParent().getTreeEntries();
    const baseEntries = treeConflict.getBase().getTreeEntries();
    const headEntries = treeConflict.getHead().getTreeEntries();

    const baseDiff = _diffEntries(parentEntries, baseEntries);
    const headDiff = _diffEntries(parentEntries, headEntries);

    const resolvedEntries = treeConflict.getConflicts().map((solvedConflict) => {
        // Convert to TreeEntries (or null for deletion)
        if (solvedConflict.isDeleted()) {
            return null;
        } else {
            return new TreeEntry({
                sha: solvedConflict.getSolvedSha() || null
            });
        }
    });

    return parentEntries.merge(baseDiff, headDiff, resolvedEntries)
    // Remove deleted entries
    .filter(function nonNull(entry) {
        return entry !== null;
    });
}
function _getSolvedEntries(treeConflict) {
    const parentEntries = treeConflict.getParent().getTreeEntries();
    const baseEntries = treeConflict.getBase().getTreeEntries();
    const headEntries = treeConflict.getHead().getTreeEntries();

    const baseDiff = _diffEntries(parentEntries, baseEntries);
    const headDiff = _diffEntries(parentEntries, headEntries);

    const resolvedEntries = treeConflict.getConflicts().map((solvedConflict) => {
        // Convert to TreeEntries (or null for deletion)
        if (solvedConflict.isDeleted()) {
            return null;
        } else {
            return new TreeEntry({
                sha: solvedConflict.getSolvedSha() || null
            });
        }
    });

    return parentEntries.merge(baseDiff, headDiff, resolvedEntries)
    // Remove deleted entries
    .filter(function nonNull(entry) {
        return entry !== null;
    });
}
Returns the final TreeEntries for a solved TreeConflict.
@param {TreeConflict} treeConflict
@return {Map<Path, TreeEntry>} Some TreeEntries have a null SHA
because of new solved content.