Merge branch 'js/merge'
authorJunio C Hamano <gitster@pobox.com>
Sat, 9 Jun 2007 09:06:01 +0000 (02:06 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 9 Jun 2007 09:06:01 +0000 (02:06 -0700)
* js/merge:
git-merge-file: refuse to merge binary files

builtin-merge-file.c
t/t6023-merge-file.sh
index 913577390862a847857a650516740059072b60ad..10ec63b17e6b16382f2b39e5c01cc6cf1dce448e 100644 (file)
@@ -36,9 +36,13 @@ int cmd_merge_file(int argc, char **argv, char **envp)
        for (; i < 3; i++)
                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]))
                        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],
                        &xpp, XDL_MERGE_ZEALOUS, &result);
index 43aa5d033d0d8877b4f252710efa4bd26ee42d30..ecc11c1a8448d7a5825e8ade7d7aaa7c43efef9f 100755 (executable)
@@ -134,4 +134,9 @@ EOF
 
 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