On Wed, Jan 25, 2017 at 01:19:06AM +0100, cornelius.weig@xxxxxxxxxxx wrote: > From: Cornelius Weig <cornelius.weig@xxxxxxxxxxx> > > Git does not create a history for tags, in contrast to common > expectation to simply version everything. This can be changed by using > the `--create-reflog` flag when creating the tag. However, a config > option to enable this behavior by default is missing. Hmm, I didn't even know we had "tag --create-reflog". Looks like it was added by 144c76fa39 (update-ref and tag: add --create-reflog arg, 2015-07-21). IMHO it is a mistake. The "update-ref --create-reflog" variant makes sense to me as a plumbing operation. But are there end users who want to create a reflog for just _one_ tag? As your patch shows, the more likely variant is "I want reflogs for all tags". But that raises two questions with your patch: - yours isn't "reflogs for all tags". It's "reflogs for tags I created with git-tag". What about other operations that create tags, like fetching (or even just a script that uses update-ref under the hood). IOW, instead of tag.createReflog, should this be tweaing core.logallrefupdates to have a mode that includes tags? - Is that the end of it, or is the desire really "I want reflogs for _everything_"? That seems like a sane thing to want. If so, then the update to core.logallrefupdates should turn it into a tri-state: - false; no reflogs - true; reflogs for branches, remotes, notes, as now - always; reflogs for all refs under "refs/" I made a lot of suppositions about your desires there, so maybe you really do want just tag.createReflog. But "core.logallrefupdates = always" sounds a lot more useful to me. -Peff