All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann Dirson <dirson@bertin.fr>
To: Zefram <zefram@fysh.org>
Cc: Jeff King <peff@peff.net>, git@vger.kernel.org
Subject: Re: ghost refs
Date: Tue, 20 Apr 2010 15:00:15 +0200	[thread overview]
Message-ID: <20100420150015.4bd80387@chalon.bertin.fr> (raw)
In-Reply-To: <20100420120228.GM17930@lake.fysh.org>

Le Tue, 20 Apr 2010 13:02:28 +0100,
Zefram <zefram@fysh.org> a écrit :

> Jeff King wrote:
> >  2. Make a refs/dead hierarchy so that the reflogs don't interfere
> > with new branches. This just pushes off the problem, though, for
> > when you try to delete "foo/bar" and see that "refs/dead/foo" is
> > already blocking its spot in the reflog graveyard.
> 
> This is easily solved by tweaking the name for dead reflogs.
> logs/dead_refs/foo~ doesn't clash with logs/dead_refs/foo/bar~.
>
> You might also want to stick a sequence number into the filename, for
> when you delete more than one foo/bar branch.

That sounds cool.  A logs/dead_refs/ namespace of some sort seems to be
unavoidable, to avoid the clash between old "logs/refs/foo/bar~"
and new "logs/refs/foo".

We would also need a syntax for accessing those.  Maybe something
reminiscent of Debian "epochs" in version number.  That would
give a syntax like "foo@{1:1}" and "foo@{2:1}" to access the dead and
long-dead refs' logs, respectively looking into foo~<largest> and
foo~<largest-1>.

Going that way, we would probably want to add a "delete" entries in the
reflog when deleting a ref - but that would make "foo@{1:0}" a
non-sense, we could just reject it.


Another option than adding a sequence number would be to move back the
dead_refs/ log back to refs/ when the branch is creating again.  That
way just after resurection we have:

	foo@{0}	: now
	foo@{1} : invalid (deleted state)
	foo@{2} : the ref as it was 2 operations before

That would kinda make sense too, but then if the new "foo" is something
completely unrelated, we may rather want to refer to foo{1:1}
(which is stable until next deletion of foo) rather than foo@{2}, which
varies with current foo.  But the 1st solution could give us that too,
by considering logs/dead_refs/foo~ the logical continuation of
logs/refs/foo.

Would that make sense ?
-- 
Yann

  reply	other threads:[~2010-04-20 13:09 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-07 16:38 ghost refs John Dlugosz
2010-04-07 16:58 ` Avery Pennarun
2010-04-07 21:00   ` Jeff King
2010-04-07 22:00     ` John Dlugosz
2010-04-07 22:03       ` Avery Pennarun
2010-04-07 22:10         ` John Dlugosz
2010-04-07 22:11           ` Avery Pennarun
2010-04-08  4:30             ` Jeff King
2010-04-08 16:07               ` John Dlugosz
2010-04-08 16:55                 ` Junio C Hamano
2010-04-08 19:49                   ` Jeff King
2010-04-08 20:42                     ` Junio C Hamano
2010-04-08 22:14                       ` Avery Pennarun
2010-04-08 23:04                       ` Nicolas Sebrecht
2010-04-17 11:51                       ` Jeff King
2010-04-17 16:32                         ` Junio C Hamano
2010-04-17 16:57                           ` Git documentation writing guidelines (was: Re: ghost refs) Jakub Narebski
2010-04-18  0:28                             ` Git documentation writing guidelines Junio C Hamano
2010-04-19 15:33                         ` ghost refs John Dlugosz
2010-04-20  7:02     ` Yann Dirson
2010-04-20 11:51       ` Jeff King
2010-04-20 12:02         ` Zefram
2010-04-20 13:00           ` Yann Dirson [this message]
2010-04-20 13:14             ` Zefram
2010-04-20 13:33         ` Jay Soffian
2010-04-20 14:24           ` Jeff King
2010-04-20 14:42             ` Yann Dirson
2010-04-20 14:52             ` Jay Soffian
2010-04-20 15:03               ` Alex Riesen
2010-04-20 15:10               ` Jeff King

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=20100420150015.4bd80387@chalon.bertin.fr \
    --to=dirson@bertin.fr \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    --cc=zefram@fysh.org \
    /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.