All of lore.kernel.org
 help / color / mirror / Atom feed
From: bdowning@lavos.net (Brian Downing)
To: Junio C Hamano <gitster@pobox.com>
Cc: David Symonds <dsymonds@gmail.com>, Bill Lear <rael@zopyra.com>,
	Jay Soffian <jaysoffian@gmail.com>,
	Git Mailing List <git@vger.kernel.org>
Subject: Keeping reflogs on branch deletion
Date: Thu, 14 Feb 2008 08:01:52 -0600	[thread overview]
Message-ID: <20080214140152.GT27535@lavos.net> (raw)
In-Reply-To: <7vr6fgkxt2.fsf@gitster.siamese.dyndns.org>

On Wed, Feb 13, 2008 at 07:43:21PM -0800, Junio C Hamano wrote:
> People often mistake that the safety of "branch -d" is to not
> lose the commit (i.e. not making it unreachable), but that is
> not the case.  That safety already exists in HEAD reflogs.
> 
> The "branch -d" safety is about not losing the particular point.
> The information we really are trying to protect is "this branch
> points at _that commit_", which is just as important if not
> more.

This actually brings up something I've been intending to ask.

When deleting a branch, is there any reason we can't add a deletion
entry into the reflog and keep the reflog around?  This would seem to be
a lot safer; I know I've been burned by expecting the reflog safety net
to be there, and surprised that it's not when I've deleted a branch.

I expect that the reflog entry would look something like this:

0000000000000000000000000000000000000000 4685dfedd47683a476e75166b5c273c0269b7e54 Brian Downing <bdowning@lavos.net> 1202996833 -0600   branch: Created from ubuntu-dapper
4685dfedd47683a476e75166b5c273c0269b7e54 0000000000000000000000000000000000000000 Brian Downing <bdowning@lavos.net> 1202996863 -0600   branch: Deleted

A couple of problems I've noticed that would have to be fixed for this
to work:

* git log -g (and anything else that can take a reflog) would have to be
  fixed or modified to allow for taking branches that no longer exist:

  :; ls .git/logs/refs/heads/foo
  .git/logs/refs/heads/foo
  :; git log -g foo
  fatal: ambiguous argument 'foo': unknown revision or path not in the working tree.
  Use '--' to separate paths from revisions

  My uneducated suspicion is that this may be somewhat hard.

* If the above did work, it would be nice for the deletion entry to
  result in a nice "branch was deleted" entry in log -g output.  Today,
  that entry is missing in its entirety.

-bcd

  reply	other threads:[~2008-02-14 14:02 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-14  1:39 A couple branch questions Jay Soffian
2008-02-14  1:45 ` David Symonds
2008-02-14  2:24   ` Bill Lear
2008-02-14  3:03     ` David Symonds
2008-02-14  3:43       ` Junio C Hamano
2008-02-14 14:01         ` Brian Downing [this message]
2008-02-14 15:00           ` Keeping reflogs on branch deletion Nicolas Pitre
2008-02-14 15:08             ` Johannes Schindelin
2008-02-14 15:17             ` Jeff King
2008-02-14 16:16               ` Nicolas Pitre
2008-02-14 16:31                 ` Jeff King
2008-02-14 17:32                   ` Nicolas Pitre
2008-02-14 17:57                     ` Jeff King
2008-02-14 20:17                       ` Wincent Colaiuta
2008-02-14 16:35           ` Jakub Narebski

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=20080214140152.GT27535@lavos.net \
    --to=bdowning@lavos.net \
    --cc=dsymonds@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jaysoffian@gmail.com \
    --cc=rael@zopyra.com \
    /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.