• Junio C Hamano's avatar
    A new merge stragety 'subtree'. · 68faf689
    Junio C Hamano authored
    This merge strategy largely piggy-backs on git-merge-recursive.
    When merging trees A and B, if B corresponds to a subtree of A,
    B is first adjusted to match the tree structure of A, instead of
    reading the trees at the same level.  This adjustment is also
    done to the common ancestor tree.
    If you are pulling updates from git-gui repository into git.git
    repository, the root level of the former corresponds to git-gui/
    subdirectory of the latter.  The tree object of git-gui's toplevel
    is wrapped in a fake tree object, whose sole entry has name 'git-gui'
    and records object name of the true tree, before being used by
    the 3-way merge code.
    If you are merging the other way, only the git-gui/ subtree of
    git.git is extracted and merged into git-gui's toplevel.
    The detection of corresponding subtree is done by comparing the
    pathnames and types in the toplevel of the tree.
    Heuristics galore!  That's the git way ;-).
    Signed-off-by: default avatarJunio C Hamano <[email protected]>
test-match-trees.c 588 Bytes