summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-04-28 11:53:57 -0700
committerJunio C Hamano <gitster@pobox.com>2013-04-28 11:53:57 -0700
commit27f0d3b63d5d20ebaba4cb45dddfc2e29649f18c (patch)
tree23fc48e5923ec3c80c5de47310d11f39053cb796
parentea573521828162b998389fbfc45d47f413b016fe (diff)
parentab5f42422d7e025c3151d91cc5ec0d20b9a80922 (diff)
downloadgit-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.c2
-rwxr-xr-xt/t4300-merge-tree.sh13
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