summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 1ee2657)
raw | patch | inline | side by side (parent: 1ee2657)
author | Junio C Hamano <gitster@pobox.com> | |
Sun, 11 Oct 2009 20:38:11 +0000 (13:38 -0700) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Mon, 4 Jan 2010 07:25:13 +0000 (23:25 -0800) |
When the ancestor used to have a blob "P", your tree removed it, and the
tree you are merging with also removed it, the agressive three-way cleanly
merges to remove that blob. If the other tree added a new blob "P/Q"
while removing "P", it should also merge cleanly to remove "P" and create
"P/Q" (since neither the ancestor nor your tree could have had it, so it
is a typical "created in one").
The "aggressive" rule is not new anymore. Reword the stale comment.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
tree you are merging with also removed it, the agressive three-way cleanly
merges to remove that blob. If the other tree added a new blob "P/Q"
while removing "P", it should also merge cleanly to remove "P" and create
"P/Q" (since neither the ancestor nor your tree could have had it, so it
is a typical "created in one").
The "aggressive" rule is not new anymore. Reword the stale comment.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t6035-merge-dir-to-symlink.sh | patch | blob | history | |
unpack-trees.c | patch | blob | history |
index b9a280e351e941e9823911852fd27c0563834c22..d1b22871c40674582e6999804102afb95283b653 100755 (executable)
git tag test2
'
-test_expect_failure 'merge should not have conflicts (resolve)' '
+test_expect_success 'merge should not have conflicts (resolve)' '
git reset --hard &&
git checkout baseline^0 &&
git merge -s resolve test2 &&
diff --git a/unpack-trees.c b/unpack-trees.c
index dd5999c3562219b7993420b22257f4088ab82b8d..7413ff0b93c92efd46c4eadce4016b41a2415957 100644 (file)
--- a/unpack-trees.c
+++ b/unpack-trees.c
remote = NULL;
}
- /* First, if there's a #16 situation, note that to prevent #13
+ /*
+ * First, if there's a #16 situation, note that to prevent #13
* and #14.
*/
if (!same(remote, head)) {
}
}
- /* We start with cases where the index is allowed to match
+ /*
+ * We start with cases where the index is allowed to match
* something other than the head: #14(ALT) and #2ALT, where it
* is permitted to match the result instead.
*/
@@ -811,12 +813,13 @@ int threeway_merge(struct cache_entry **stages, struct unpack_trees_options *o)
if (!head && !remote && any_anc_missing)
return 0;
- /* Under the new "aggressive" rule, we resolve mostly trivial
+ /*
+ * Under the "aggressive" rule, we resolve mostly trivial
* cases that we historically had git-merge-one-file resolve.
*/
if (o->aggressive) {
- int head_deleted = !head && !df_conflict_head;
- int remote_deleted = !remote && !df_conflict_remote;
+ int head_deleted = !head;
+ int remote_deleted = !remote;
struct cache_entry *ce = NULL;
if (index)