On Wed, Aug 29, 2012 at 05:00:32PM -0400, Jeff King wrote:

> > Hmm, this does seem to break t6024 for me, though.
> 
> Probably because:
> 
> >     /* Clean up the result to remove stale ones */
> > -   free_commit_list(list);
> > -   list = result; result = NULL;
> > -   while (list) {
> > -           struct commit_list *next = list->next;
> > -           if (!(list->item->object.flags & STALE))
> > -                   commit_list_insert_by_date(list->item, &result);
> > -           free(list);
> > -           list = next;
> > -   }
> > -   return result;
> > +   while (result.nr)
> > +           commit_list_append(queue_pop(&result), &tail);
> > +   queue_clear(&result);
> > +   queue_clear(&list);
> > +   return ret;
> 
> I forgot to to port the STALE flag handling here.

You would want this on top:

diff --git a/commit.c b/commit.c
index c64ef94..8259871 100644
--- a/commit.c
+++ b/commit.c
@@ -661,8 +661,11 @@ static struct commit_list *merge_bases_many(struct commit 
*one, int n, struct co
        }
 
        /* Clean up the result to remove stale ones */
-       while (result.nr)
-               commit_list_append(queue_pop(&result), &tail);
+       while (result.nr) {
+               struct commit *commit = queue_pop(&result);
+               if (!(commit->object.flags & STALE))
+                       commit_list_append(commit, &tail);
+       }
        queue_clear(&result);
        queue_clear(&list);
        return ret;

but t6024 still fails (it clearly is finding a different merge base than
the test expects).  I'll trace through it, but it will have to be later
tonight.

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to