On Tue, Feb 13, 2018 at 9:18 AM, Junio C Hamano <[email protected]> wrote:
>
> That makes me wonder if another heuristic I floated earlier is more
> appropriate. When merging a tag object T, if refs/tags/T exists and
> it is that tag object, then an updated "merge" would default to "--ff";
> otherwise, it would keep the current default of creating a merge even
> when we could fast-forward, in order to record that tag T in the
> resulting history.
Oooh. Yes, that sounds like the right thing to do.
So the "no fast-forward" logic would trigger only if the name we used
for merging is one of the temporary ones (ie .git/{FETCH,MERGE}_HEAD),
not if the mentioned tag is already a normal tag reference.
Then it's very explicitly about "don't lose the signing information".
I'd still have to teach people to use "--only-ff" if they don't do the
"fetch and merge" model but literally just do "git pull upstream
vX.Y", but at least the case Mauro describes would automatically just
DTRT.
Me likey.
Linus