Subject: Re: [BUG] "git pull" will regress between 'master' and 'pu'

From: Jeff King <[email-masked]>
Date: Mon, 20 Apr 2015 15:10:41 -0400

On Mon, Apr 20, 2015 at 11:59:04AM -0700, Junio C Hamano wrote:

> Jeff King <[email-masked]> writes:
> 
> > @@ -334,7 +333,7 @@ true)
> >  	eval="git-merge $diffstat $no_commit $verify_signatures $edit $squash $no_ff $ff_only"
> >  	eval="$eval $log_arg $strategy_args $merge_args $verbosity $progress"
> >  	eval="$eval $gpg_sign_args"
> > -	eval="$eval -m \"\$merge_name\" $merge_head"
> > +	eval="$eval FETCH_HEAD"
> >  	;;
> >  esac
> >  eval "exec $eval"
> >
> > as we seem to special-case the name FETCH_HEAD. It assumes that
> > git-merge's parsing of FETCH_HEAD is the same as what we do in git-pull,
> > but that seems safe.
> 
> Unfortunately, "git merge"'s parsing of FETCH_HEAD forgets that we
> may be creating an Octopus.  Otherwise the above should work well.

That sounds like a bug we should fix regardless.

> > Unfortunately we still have to compute $merge_head ourselves here
> > for the "git pull --rebase" case.
> 
> That is not that unfortunate, I would say.

I guess not. It is only a few lines of sed. And having the details there
does let us customize the error cases. My main worry would just be a
maintenance one: that somebody modifies git-pull to calculate merge_head
differently, but it turns out that we ignore it when calling git-merge.
But that's probably not that likely to matter in practice.

-Peff