Jeff King [off-list ref] writes:
I think every caller should be using "-m" these days. I know we can't
_require_ it for historical reasons. But shouldn't symbolic-ref always
write a reflog entry? Even something like "we changed and I can't tell
you why" to cover older scripts that call symbolic-ref?
I think the particular instance Csaba saw in rebase may want to pass the
reason why it flipped the HEAD.
Flipping HEAD temporarily to another ref to do something, only to flip it
back before giving the control back to the user, might be something a
script may want to have a choice of not logging, so I am mildly negative
on changing the command to unconditionally log empty entry without being
told.
"update-ref" seems to write an empty entry even when not given an "-m"
option, and we can view it as robbing a similar choice from the scripts.
We might want to fix it. I dunno.
On Fri, Apr 29, 2011 at 04:00:11PM -0700, Junio C Hamano wrote:
Jeff King [off-list ref] writes:
quoted
I think every caller should be using "-m" these days. I know we can't
_require_ it for historical reasons. But shouldn't symbolic-ref always
write a reflog entry? Even something like "we changed and I can't tell
you why" to cover older scripts that call symbolic-ref?
I think the particular instance Csaba saw in rebase may want to pass the
reason why it flipped the HEAD.
Oh, definitely. I was thinking more for external scripts that we can't
fix.
Flipping HEAD temporarily to another ref to do something, only to flip it
back before giving the control back to the user, might be something a
script may want to have a choice of not logging, so I am mildly negative
on changing the command to unconditionally log empty entry without being
told.
Yeah, that is a legitimate use case. But I suspect many scripts were
simply never updated after reflogs were introduced (or their authors)
were lazy, so they flip it once without a reflog, and then the next
well-behaved writer who comes along ends up writing a reflog entry that
shows a hole.
So it is a question of whether helping probably-broken users is worth
shutting off a legitimate use case. I also wonder how valuable that use
case is. As a user, I think I'd rather see _everything_ in the reflog,
even if the script-writer doesn't think it's important.
I don't know that it matters much in any case. We haven't had any bug
reports either way; and given the current behavior, one can always yell
at the script author to properly reflog.
"update-ref" seems to write an empty entry even when not given an "-m"
option, and we can view it as robbing a similar choice from the scripts.
We might want to fix it. I dunno.
I'm inclined to wait until somebody actually wants it. In the meantime
it helps users of old and/or broken scripts by providing an additional
checkpoint of state that might otherwise be missing.
-Peff
On Sat, Apr 30, 2011 at 4:30 AM, Junio C Hamano [off-list ref] wrote:
Jeff King [off-list ref] writes:
quoted
I think every caller should be using "-m" these days. I know we can't
_require_ it for historical reasons. But shouldn't symbolic-ref always
write a reflog entry? Even something like "we changed and I can't tell
you why" to cover older scripts that call symbolic-ref?
I think the particular instance Csaba saw in rebase may want to pass the
reason why it flipped the HEAD.
Flipping HEAD temporarily to another ref to do something, only to flip it
back before giving the control back to the user, might be something a
script may want to have a choice of not logging, so I am mildly negative
on changing the command to unconditionally log empty entry without being
told.
"update-ref" seems to write an empty entry even when not given an "-m"
option, and we can view it as robbing a similar choice from the scripts.
We might want to fix it. I dunno.
What if symbolic-ref and/or update-ref were changed so that the default
invocation would add a reflog entry with a default (empty?) note, however,
also provide an option with which suppressing the reflog can be requested?
Csaba