Hi Domenico, Domenico Andreoli <ca...@debian.org> (2022-06-12): > Therefore, when later a new upstream version is released, the `upstream` > branch cannot fast forward to the new release tag but has to create > a merge commit. The `upstream` is effectively a fork of the upstream > branch just for the sake of tagging versions with such empty commits. > > What am I missing? :)
I think this is just regular Git when it's not told to apply special care when it comes to merging tags. From `git help merge`: MERGING TAG When merging an annotated (and possibly signed) tag, Git always creates a merge commit even if a fast-forward merge is possible, and the commit message template is prepared with the tag message. Additionally, if the tag is signed, the signature check is reported as a comment in the message template. See also git-tag(1). When you want to just integrate with the work leading to the commit that happens to be tagged, e.g. synchronizing with an upstream release point, you may not want to make an unnecessary merge commit. In such a case, you can "unwrap" the tag yourself before feeding it to git merge, or pass --ff-only when you do not have any work on your own. e.g. git fetch origin git merge v1.2.3^0 git merge --ff-only v1.2.3 I don't have hard evidence on this (and don't feel like digging to double check) but I seem to remember merging tags happily (getting a FF without the aforementioned tricks) for many years, until “recently”. I'd say that changed in buster or bullseye. Cheers, -- Cyril Brulebois -- Debian Consultant @ DEBAMAX -- https://debamax.com/
signature.asc
Description: PGP signature