On Wed, May 17, 2017 at 10:38:36AM +0900, Junio C Hamano wrote: > > - add_pending_object(revs, a_obj, this); > > - add_pending_object(revs, b_obj, next); > > + add_pending_object_with_path(revs, a_obj, this, > > + oc.mode, > > + oc.path[0] ? oc.path : NULL); > > + add_pending_object_with_path(revs, b_obj, next, > > + oc2.mode, > > + oc2.path[0] ? oc2.path : NULL); > > The fix is surprisingly simple, and I think it definitely goes in > the right direction. > > Somehow, it bothers me to be forced to view (a_obj, this, from_sha1, > oc) vs (b_obj, next, sha1, oc2) as a sensibly corresponding pair of > tuples, but that is not something your introduction of "oc2" > started, so I won't complain ;-). Yes, in my polishing I switched this out at least "oc_a" and "oc_b" so we could be sure they match correctly. I think this whole "dotdot" conditional could be pulled out to its own function, and probably consistently use "a" and "b" for the endpoints. I'll see what refactoring I can do to make it more readable. -Peff