From: Kyle Meyer <kyle@kyleam.com>
To: Junio C Hamano <gitster@pobox.com>, Jeff King <peff@peff.net>
Cc: Kyle Meyer <kyle@kyleam.com>, git@vger.kernel.org
Subject: [PATCH 0/3] delete_ref(): support reflog messages
Date: Thu, 16 Feb 2017 22:57:57 -0500 [thread overview]
Message-ID: <20170217035800.13214-1-kyle@kyleam.com> (raw)
In-Reply-To: <20170126211205.5gz3zsrptop7n34n@sigill.intra.peff.net>
[Sorry for the slow response.]
Jeff King <peff@peff.net> writes:
> On Mon, Jan 16, 2017 at 06:17:29PM -0500, Kyle Meyer wrote:
[...]
>> $ cat .git/logs/refs/heads/new-master
>> 00000... 68730... Kyle Meyer <kyle@kyleam.com> 1484607020 -0500 commit (initial): Add file.txt
>> 68730... 68730... Kyle Meyer <kyle@kyleam.com> 1484607020 -0500 Branch: renamed refs/heads/master to refs/heads/new-master
>>
>> $ cat .git/logs/HEAD
>> 00000... 68730... Kyle Meyer <kyle@kyleam.com> 1484607020 -0500 commit (initial): Add file.txt
>> 68730... 00000... Kyle Meyer <kyle@kyleam.com> 1484607020 -0500
>>
>> I expected the second line of .git/logs/HEAD to mirror the second line
>> of .git/logs/refs/heads/new-master. Are the empty message and null sha1
>> in HEAD's entry intentional?
>
> The null sha1 is correct, I think. The branch we were on went away, and
> we use the null sha1 to indicate "no value" in both the creation and
> deletion cases.
I see, thanks.
> I'd say there are two potential improvements:
>
> - delete_ref() should take a reflog message argument, in case it
> updates the HEAD reflog (as a bonus, this will future-proof us for a
> day when we might keep reflogs for deleted refs).
I've tried to do this in the following patches.
> - "git branch -m" does seem to realize when we are renaming HEAD,
> because it updates HEAD to point to the new branch name. But it
> should probably insert another reflog entry mentioning the rename
> (we do for "git checkout foo", even when "foo" has the same sha1 as
> the current HEAD).
I haven't worked out how to do this part yet. I'm guessing the change
will involve modifying split_head_update().
If this is added, should it be instead of, rather than in addition to,
the deletion entry? If a "Branch: renamed ..." entry is present, it
doesn't seem like the deletion entry is providing any additional
information.
delete_refs(): accept a reflog message argument
update-ref: pass reflog message argument to delete_refs
rename_ref: replace empty deletion message in HEAD's log
builtin/am.c | 4 ++--
builtin/branch.c | 2 +-
builtin/notes.c | 4 ++--
builtin/remote.c | 4 ++--
builtin/replace.c | 2 +-
builtin/reset.c | 2 +-
builtin/symbolic-ref.c | 2 +-
builtin/tag.c | 2 +-
builtin/update-ref.c | 2 +-
fast-import.c | 2 +-
refs.c | 4 ++--
refs.h | 2 +-
refs/files-backend.c | 12 +++++++++---
t/t1400-update-ref.sh | 9 +++++++++
t/t3200-branch.sh | 4 ++++
transport.c | 2 +-
16 files changed, 39 insertions(+), 20 deletions(-)
--
Kyle
next prev parent reply other threads:[~2017-02-17 3:58 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-16 23:17 HEAD's reflog entry for a renamed branch Kyle Meyer
2017-01-26 21:12 ` Jeff King
2017-01-26 21:30 ` Junio C Hamano
2017-01-26 21:53 ` Jeff King
2017-02-17 3:57 ` Kyle Meyer [this message]
2017-02-17 3:57 ` [PATCH 1/3] delete_refs(): accept a reflog message argument Kyle Meyer
2017-02-17 8:12 ` Jeff King
2017-02-17 17:05 ` Junio C Hamano
2017-02-17 23:35 ` Kyle Meyer
2017-02-17 3:57 ` [PATCH 2/3] update-ref: pass reflog message argument to delete_refs Kyle Meyer
2017-02-17 8:22 ` Jeff King
2017-02-17 17:11 ` Junio C Hamano
2017-02-17 23:40 ` Kyle Meyer
2017-02-17 23:41 ` Jeff King
2017-02-17 3:58 ` [PATCH 3/3] rename_ref: replace empty deletion message in HEAD's log Kyle Meyer
2017-02-17 8:31 ` Jeff King
2017-02-17 17:50 ` Junio C Hamano
2017-02-17 19:43 ` Jeff King
2017-02-17 19:55 ` Jeff King
2017-02-17 22:18 ` Junio C Hamano
2017-02-17 23:42 ` Kyle Meyer
2017-02-17 23:41 ` Kyle Meyer
2017-02-17 23:53 ` Junio C Hamano
2017-02-17 23:53 ` Jeff King
2017-02-17 8:17 ` [PATCH 0/3] delete_ref(): support reflog messages Jeff King
2017-02-21 1:10 ` [PATCH v2 0/4] delete_ref: " Kyle Meyer
2017-02-21 1:10 ` [PATCH v2 1/4] delete_ref: accept a reflog message argument Kyle Meyer
2017-02-23 9:33 ` Duy Nguyen
2017-02-23 22:29 ` Junio C Hamano
2017-02-25 3:05 ` Kyle Meyer
2017-02-21 1:10 ` [PATCH v2 2/4] update-ref: pass reflog message to delete_ref() Kyle Meyer
2017-02-21 1:10 ` [PATCH v2 3/4] rename_ref: replace empty message in HEAD's log Kyle Meyer
2017-02-21 1:10 ` [PATCH v2 4/4] branch: record creation of renamed branch " Kyle Meyer
2017-02-21 7:12 ` [PATCH v2 0/4] delete_ref: support reflog messages Jeff King
2017-02-21 7:18 ` Junio C Hamano
2017-02-21 16:45 ` Kyle Meyer
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170217035800.13214-1-kyle@kyleam.com \
--to=kyle@kyleam.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.