Michał Kiedrowicz <michal.kiedrowicz@xxxxxxxxx> writes: > diff --git a/builtin/merge.c b/builtin/merge.c > index 08e01e8..2d5930f 100644 > --- a/builtin/merge.c > +++ b/builtin/merge.c > @@ -1346,6 +1346,9 @@ int cmd_merge(int argc, const char **argv, const char *prefix) > allow_trivial = 0; > } > > + if (remoteheads->next) > + remoteheads = reduce_heads(remoteheads); > + If your current HEAD is an ancestor of one of the commit on that list, the above does not omit it from the parent list of the resulting merge commit, but if you performed the same merge while on one of the commit being merged, your current HEAD will be excluded with reduce_heads(), which would mean that you will end up recording a different history even though a merge is supposed to be symmetrical. In other words, isn't any solution that calls reduce_heads() only on remoteheads fundamentally wrong and merely papering over the problem? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html