Remove filename from conflict markers

Put filenames into the conflict markers only when they are different.
Otherwise they are redundant information clutter.

Print the filename explicitely when warning about a binary conflict.

Signed-off-by: Martin Renold <martinxyz@gmx.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Martin Renold 2009-07-01 22:18:04 +02:00 committed by Junio C Hamano
parent 702beb3af0
commit 606475f317
4 changed files with 17 additions and 13 deletions

View file

@ -55,7 +55,7 @@ static int ll_binary_merge(const struct ll_merge_driver *drv_unused,
static int ll_xdl_merge(const struct ll_merge_driver *drv_unused,
mmbuffer_t *result,
const char *path_unused,
const char *path,
mmfile_t *orig,
mmfile_t *src1, const char *name1,
mmfile_t *src2, const char *name2,
@ -67,10 +67,10 @@ static int ll_xdl_merge(const struct ll_merge_driver *drv_unused,
if (buffer_is_binary(orig->ptr, orig->size) ||
buffer_is_binary(src1->ptr, src1->size) ||
buffer_is_binary(src2->ptr, src2->size)) {
warning("Cannot merge binary files: %s vs. %s\n",
name1, name2);
warning("Cannot merge binary files: %s (%s vs. %s)\n",
path, name1, name2);
return ll_binary_merge(drv_unused, result,
path_unused,
path,
orig, src1, name1,
src2, name2,
virtual_ancestor);

View file

@ -622,8 +622,13 @@ static int merge_3way(struct merge_options *o,
char *name1, *name2;
int merge_status;
name1 = xstrdup(mkpath("%s:%s", branch1, a->path));
name2 = xstrdup(mkpath("%s:%s", branch2, b->path));
if (strcmp(a->path, b->path)) {
name1 = xstrdup(mkpath("%s:%s", branch1, a->path));
name2 = xstrdup(mkpath("%s:%s", branch2, b->path));
} else {
name1 = xstrdup(mkpath("%s", branch1));
name2 = xstrdup(mkpath("%s", branch2));
}
fill_mm(one->sha1, &orig);
fill_mm(a->sha1, &src1);

View file

@ -119,11 +119,11 @@ index e69de29..00750ed 100644
EOF
cat > expect2 << EOF
<<<<<<< HEAD:file1
<<<<<<< HEAD
2
=======
3
>>>>>>> b7ca976... G:file1
>>>>>>> b7ca976... G
EOF
test_expect_success 'stop on conflicting pick' '

View file

@ -65,18 +65,18 @@ test_expect_success "combined merge conflicts" "
"
cat > expect << EOF
<<<<<<< HEAD:a1
<<<<<<< HEAD
F
=======
G
>>>>>>> G:a1
>>>>>>> G
EOF
test_expect_success "result contains a conflict" "test_cmp expect a1"
git ls-files --stage > out
cat > expect << EOF
100644 da056ce14a2241509897fa68bb2b3b6e6194ef9e 1 a1
100644 439cc46de773d8a83c77799b7cc9191c128bfcff 1 a1
100644 cf84443e49e1b366fac938711ddf4be2d4d1d9e9 2 a1
100644 fd7923529855d0b274795ae3349c5e0438333979 3 a1
EOF
@ -93,8 +93,7 @@ test_expect_success 'refuse to merge binary files' '
git add binary-file &&
git commit -m binary2 &&
test_must_fail git merge F > merge.out 2> merge.err &&
grep "Cannot merge binary files: HEAD:binary-file vs. F:binary-file" \
merge.err
grep "Cannot merge binary files: binary-file (HEAD vs. F)" merge.err
'
test_expect_success 'mark rename/delete as unmerged' '