Please sign in to comment.
Fix merges involving subtrees with StrategySimpleTwoWayInCore
JGit mismerged two trees when the common ancestor tree contained two trees named libelf-po and libelf, and libelf was modified on one side of the merge, while libelf-po was unmodified by both: 040000 tree ... libelf-po 040000 tree ... libelf Above is the correct sort order, as the second tree, libelf, must be sorted as though it ends with '/', and thus comes after libelf-po. JGit flipped the order during a merge as the strategy added the modified subtree "libelf" directly to the DirCacheBuilder, rather than unfolding its contents into the DirCache. The result was a tree entry where only file type entries were expected, and the DirCacheBuilder resorted its contents to place "libelf" before "libelf-po". Signed-off-by: Shawn O. Pearce <email@example.com> Signed-off-by: Robin Rosenberg <firstname.lastname@example.org>
- Loading branch information...
Showing with 119 additions and 18 deletions.