Fix push with refspecs containing wildcards
[gitweb.git] / merge-recursive.c
index 37f1ba93fe943e45a984c012b31390d68fc9498c..4a82b741ae020376ac67b34d5fce86e8a87a3b5d 100644 (file)
@@ -680,6 +680,12 @@ static int ll_xdl_merge(const struct ll_merge_driver *drv_unused,
 {
        xpparam_t xpp;
 
+       if (buffer_is_binary(orig->ptr, orig->size) ||
+                       buffer_is_binary(src1->ptr, src1->size) ||
+                       buffer_is_binary(src2->ptr, src2->size))
+               return error("Cannot merge binary files: %s vs. %s\n",
+                       name1, name2);
+
        memset(&xpp, 0, sizeof(xpp));
        return xdl_merge(orig,
                         src1, name1,
@@ -1342,9 +1348,14 @@ static int process_renames(struct path_list *a_renames,
                                mfi = merge_file(o, a, b,
                                                a_branch, b_branch);
 
-                               if (mfi.merge && mfi.clean &&
+                               if (mfi.clean &&
                                    sha_eq(mfi.sha, ren1->pair->two->sha1) &&
                                    mfi.mode == ren1->pair->two->mode)
+                                       /*
+                                        * This messaged is part of
+                                        * t6022 test. If you change
+                                        * it update the test too.
+                                        */
                                        output(3, "Skipped %s (merged same as existing)", ren1_dst);
                                else {
                                        if (mfi.merge || !mfi.clean)