Em Mon, 12 Feb 2018 13:15:04 -0800 Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> escreveu: > On Mon, Feb 12, 2018 at 1:00 PM, Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > > > Linus, this happens a bit after the merge window, so I am wondering > > about the rational of not doing a fast forward merge when merging a > > signed tag (I forget the reasoning). > > The reasoning is to avoid losing the signature from the tag (when > merging a signed tag, the signature gets inserted into the merge > commit itself - use "git log --show-signature" to see them). > > So when I merge a signed tag, I do *not* want to fast-forward to the > top commit, because then I'd lose the signature from the tag. Thus the > "merging signed tags are non-fast-forward by default" reasoning. > > But, yes, that reasoning is really only valid for proper merges of new > features, not for back-merges. > > The problem, of course, is that since git is distributed, git doesn't > know who is "upstream" and who is "downstream", so there's no > _technical_ difference between merging a development tree, and a > development tree doing a back-merge of the upstream tree. > > Maybe it was a mistake to make signed tag merges non-fast-forward, > since they cause these kinds of issues with people who use "pull" to > update their otherwise unmodified trees. > > I can always teach myself to just use --no-ff, since I end up doing > things like verifying at the signatures anyway. Hmm... at least at git version 2.14.3, git documentation doesn't mention that signed pull requests won't do fast forward. Instead, it says that --ff is the default behavior: --ff When the merge resolves as a fast-forward, only update the branch pointer, without creating a merge commit. This is the default behavior. Btw, even doing: $ git merge -ff v4.16-rc1 it will still produce a git commit for the merge. -- Thanks, Mauro