Merge branch 'js/maint-daemon' into maint
[gitweb.git] / revision.c
index 7e2f4f1eb5090588fc6515b78d39b7c7a4eda00d..a399f27144bbabe3ee942408cdb90398990c3c85 100644 (file)
@@ -749,14 +749,9 @@ static void prepare_show_merge(struct rev_info *revs)
        add_pending_object(revs, &head->object, "HEAD");
        add_pending_object(revs, &other->object, "MERGE_HEAD");
        bases = get_merge_bases(head, other, 1);
-       while (bases) {
-               struct commit *it = bases->item;
-               struct commit_list *n = bases->next;
-               free(bases);
-               bases = n;
-               it->object.flags |= UNINTERESTING;
-               add_pending_object(revs, &it->object, "(merge-base)");
-       }
+       add_pending_commit_list(revs, bases, UNINTERESTING);
+       free_commit_list(bases);
+       head->object.flags |= SYMMETRIC_LEFT;
 
        if (!active_nr)
                read_cache();
@@ -775,6 +770,7 @@ static void prepare_show_merge(struct rev_info *revs)
                        i++;
        }
        revs->prune_data = prune;
+       revs->limited = 1;
 }
 
 int handle_revision_arg(const char *arg, struct rev_info *revs,
@@ -1290,8 +1286,10 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch
        if (revs->diffopt.output_format & ~DIFF_FORMAT_NO_OUTPUT)
                revs->diff = 1;
 
-       /* Pickaxe and rename following needs diffs */
-       if (revs->diffopt.pickaxe || DIFF_OPT_TST(&revs->diffopt, FOLLOW_RENAMES))
+       /* Pickaxe, diff-filter and rename following need diffs */
+       if (revs->diffopt.pickaxe ||
+           revs->diffopt.filter ||
+           DIFF_OPT_TST(&revs->diffopt, FOLLOW_RENAMES))
                revs->diff = 1;
 
        if (revs->topo_order)