From: Cornelius Weig <cornelius.weig@tngtech.com>
To: Jeff King <peff@peff.net>, Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v3 2/3] refs: add option core.logAllRefUpdates = always
Date: Tue, 31 Jan 2017 15:00:33 +0100 [thread overview]
Message-ID: <1e341485-6fb6-243a-0b27-4035789a6f2a@tngtech.com> (raw)
In-Reply-To: <20170130233702.o6naszpz32juf5gt@sigill.intra.peff.net>
On 01/31/2017 12:37 AM, Jeff King wrote:
> On Mon, Jan 30, 2017 at 01:58:10PM -0800, Junio C Hamano wrote:
>
>>> When writing the test for git-tag, I realized that the option
>>> --no-create-reflog to git-tag does not take precedence over
>>> logAllRefUpdate=always. IOW the setting cannot be overridden on the command
>>> line. Do you think this is a defect or would it not be desirable to have this
>>> feature anyway?
>>
>> "--no-create-reflog" should override the configuration set to "true"
>> or "always". Also "--create-reflog" should override the
>> configuration set to "false".
>>
>> If the problem was inherited from the original code before your
>> change (e.g. you set logAllRefUpdates to true and then did
>> "update-ref --no-create-reflog refs/heads/foo".
I was actually not referring to update-ref, for which the
--no-create-reflog option works fine. I was referring to git-tag which
also has the --create-reflog option. For git-tag, the current code does
not allow to override logAllRefUpdates=always with --no-create-reflog.
On the other hand logAllRefUpdates=false is overridden by "git tag
--create-reflog". The reason is that the file-backend does allow to
force reflog creation, but it does not allow to force reflog
non-creation. I have a patch that amends this, but it's not pretty and I
don't think it will be useful (see last paragraph).
> I hadn't thought about that. I think "git branch --no-create-reflog" has
> the same problem in the existing code.
You are right, git-branch also ignores --no-create-reflog.
> I suspect nobody cares much in practice. Even if you say "don't create a
> reflog now", if you have core.logAllRefUpdates turned on, then it's
> likely that some _other_ operation will create the reflog later
> accidentally (e.g., as soon as you "git checkout foo && git commit",
> you'll get a reflog). I think you're fighting an uphill battle to turn
> logAllRefUpdates on and then try to disable some reflogs selectively.
>
> So I agree the current behavior is quietly broken, which is not good.
> But I wonder if "--no-create-reflog" is really sane in the first place,
> and whether we might be better off to simply disallow it.
Concerning branches, I fully agree. For git-branch, the
"--no-create-reflog" option does not make sense at all and should
produce an error.
On the other hand, for tags it may make sense to override
logAllRefUpdates=always. As tag updates come exclusively from
force-creating the same tag on another revision, a reflog will actually
not be created by accident.
Nevertheless, I don't think it is very useful to have the
"--no-create-reflog" argument to any of git-branch or git-tag. It only
takes effect if a user has configured logAllRefUpdates=always, and he
probably has done that for a reason. Given that the overhead from a
reflog is minuscule, IMHO no-one will ever bother about
"--no-create-reflog".
next prev parent reply other threads:[~2017-01-31 14:00 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-25 0:19 [PATCH] tag: add tag.createReflog option cornelius.weig
2017-01-25 5:06 ` Pranit Bauva
2017-01-25 18:00 ` Jeff King
2017-01-25 18:10 ` Junio C Hamano
2017-01-25 21:21 ` Cornelius Weig
2017-01-25 21:33 ` Jeff King
2017-01-25 21:43 ` Junio C Hamano
2017-01-25 22:56 ` Junio C Hamano
2017-01-25 23:40 ` Cornelius Weig
2017-01-26 1:16 ` [PATCH] refs: add option core.logAllRefUpdates = always cornelius.weig
2017-01-26 1:16 ` cornelius.weig
2017-01-26 3:35 ` Jeff King
2017-01-26 14:06 ` Cornelius Weig
2017-01-26 14:46 ` Jeff King
2017-01-26 22:31 ` [PATCH v2 1/3] config: add markup to core.logAllRefUpdates doc cornelius.weig
2017-01-26 22:31 ` [PATCH v2 2/3] refs: add option core.logAllRefUpdates = always cornelius.weig
2017-01-26 23:39 ` Junio C Hamano
2017-01-26 22:31 ` [PATCH v2 3/3] update-ref: add test cases for bare repository cornelius.weig
2017-01-26 23:41 ` Junio C Hamano
2017-01-26 23:24 ` [PATCH v2 1/3] config: add markup to core.logAllRefUpdates doc Junio C Hamano
2017-01-27 10:09 ` [PATCH v3 " cornelius.weig
2017-01-27 10:09 ` [PATCH v3 2/3] refs: add option core.logAllRefUpdates = always cornelius.weig
2017-01-30 21:58 ` Junio C Hamano
2017-01-30 22:57 ` Junio C Hamano
2017-01-31 13:16 ` Cornelius Weig
2017-01-31 17:11 ` Junio C Hamano
2017-01-30 23:37 ` Jeff King
2017-01-31 14:00 ` Cornelius Weig [this message]
2017-01-31 18:21 ` Jeff King
2017-01-31 17:08 ` Junio C Hamano
2017-01-31 20:28 ` Cornelius Weig
2017-01-31 22:02 ` Junio C Hamano
2017-01-27 10:09 ` [PATCH v3 3/3] update-ref: add test cases for bare repository cornelius.weig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1e341485-6fb6-243a-0b27-4035789a6f2a@tngtech.com \
--to=cornelius.weig@tngtech.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).