diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-04-28 11:53:57 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-04-28 11:53:57 -0700 |
commit | 27f0d3b63d5d20ebaba4cb45dddfc2e29649f18c (patch) | |
tree | 23fc48e5923ec3c80c5de47310d11f39053cb796 | |
parent | ea573521828162b998389fbfc45d47f413b016fe (diff) | |
parent | ab5f42422d7e025c3151d91cc5ec0d20b9a80922 (diff) | |
download | git-27f0d3b63d5d20ebaba4cb45dddfc2e29649f18c.tar.gz |
Merge branch 'jk/merge-tree-added-identically'
off-by-one fix.
* jk/merge-tree-added-identically:
merge-tree: fix typo in "both changed identically"
-rw-r--r-- | builtin/merge-tree.c | 2 | ||||
-rwxr-xr-x | t/t4300-merge-tree.sh | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c index ed25d81b88..ec49917a36 100644 --- a/builtin/merge-tree.c +++ b/builtin/merge-tree.c @@ -302,7 +302,7 @@ static void unresolved(const struct traverse_info *info, struct name_entry n[3]) static int threeway_callback(int n, unsigned long mask, unsigned long dirmask, struct name_entry *entry, struct traverse_info *info) { /* Same in both? */ - if (same_entry(entry+1, entry+2) || both_empty(entry+0, entry+2)) { + if (same_entry(entry+1, entry+2) || both_empty(entry+1, entry+2)) { /* Modified, added or removed identically */ resolve(info, NULL, entry+1); return mask; diff --git a/t/t4300-merge-tree.sh b/t/t4300-merge-tree.sh index bd43b3d8ef..2defb422e8 100755 --- a/t/t4300-merge-tree.sh +++ b/t/t4300-merge-tree.sh @@ -205,6 +205,19 @@ EXPECTED test_cmp expected actual ' +test_expect_success 'file remove A, B (same)' ' + cat >expected <<\EXPECTED && +EXPECTED + + git reset --hard initial && + test_commit "rm-a-b-base" "ONE" "AAA" && + git rm ONE && + git commit -m "rm-a-b" && + git tag "rm-a-b" && + git merge-tree rm-a-b-base rm-a-b rm-a-b >actual && + test_cmp expected actual +' + test_expect_success 'file change A, remove B' ' cat >expected <<\EXPECTED && removed in remote |