Browse Source

Merge branch 'js/merge'

* js/merge:
  git-merge-file: refuse to merge binary files
maint
Junio C Hamano 18 years ago
parent
commit
89dd19e107
  1. 6
      builtin-merge-file.c
  2. 5
      t/t6023-merge-file.sh

6
builtin-merge-file.c

@ -36,9 +36,13 @@ int cmd_merge_file(int argc, char **argv, char **envp)
for (; i < 3; i++) for (; i < 3; i++)
names[i] = argv[i + 1]; names[i] = argv[i + 1];


for (i = 0; i < 3; i++) for (i = 0; i < 3; i++) {
if (read_mmfile(mmfs + i, argv[i + 1])) if (read_mmfile(mmfs + i, argv[i + 1]))
return -1; return -1;
if (buffer_is_binary(mmfs[i].ptr, mmfs[i].size))
return error("Cannot merge binary files: %s\n",
argv[i + 1]);
}


ret = xdl_merge(mmfs + 1, mmfs + 0, names[0], mmfs + 2, names[2], ret = xdl_merge(mmfs + 1, mmfs + 0, names[0], mmfs + 2, names[2],
&xpp, XDL_MERGE_ZEALOUS, &result); &xpp, XDL_MERGE_ZEALOUS, &result);

5
t/t6023-merge-file.sh

@ -134,4 +134,9 @@ EOF


test_expect_success "expected conflict markers" "git diff expect out" test_expect_success "expected conflict markers" "git diff expect out"


test_expect_success 'binary files cannot be merged' '
! git merge-file -p orig.txt ../test4012.png new1.txt 2> merge.err &&
grep "Cannot merge binary files" merge.err
'

test_done test_done

Loading…
Cancel
Save