Make "git prune" use the "--full" flag to git-fsck-cache
[gitweb.git] / read-tree.c
index d86cc0263c7d2e23aa88b387b1cf040e1c06d6bc..0d5ded5026c0a87987938c498e271c1d8cce122c 100644 (file)
@@ -280,6 +280,12 @@ static int threeway_merge(struct cache_entry *stages[4],
                }
                /* otherwise we will apply the original rule */
        }
+       /* #14ALT */
+       if (a && b && c && same(a, b) && !same(a, c)) {
+               if (old && same(old, c))
+                       return merged_entry_allow_dirty(c, old, dst);
+               /* otherwise the regular rule applies */
+       }
        /*
         * If we have an entry in the index cache ("old"), then we want
         * to make sure that it matches any entries in stage 2 ("first
@@ -537,6 +543,7 @@ int main(int argc, char **argv)
                        merge = 1;
                        stage = 1;
                        read_cache_unmerged();
+                       continue;
                }
 
                /* "-m" stands for "merge", meaning we start in stage 1 */