git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
To: Petr Baudis <pasky@suse.cz>
Cc: git@vger.kernel.org
Subject: Re: Cogito: cg-clone doesn't like packed tag objects
Date: Tue, 27 Sep 2005 15:27:25 +0200	[thread overview]
Message-ID: <200509271527.26050.Josef.Weidendorfer@gmx.de> (raw)
In-Reply-To: <20050927123455.GE30889@pasky.or.cz>

On Tuesday 27 September 2005 14:34, Petr Baudis wrote:
> But we don't need any global tags or heads. You just have some heads in
> your refs/heads (it doesn't matter if they are public or remote, that's
> a "social" issue what you tell people to fetch). And based on your heads
> you have in your refs/heads, there would be directories in your
> refs/tags/ corresponding to those.

Ah, ok.

Let me see if I understand:
1) These tags are bound to a head, and they have the invariant that they 
appear in the commit history of the head.
2) They are updated automatically.
3) When someone rebases a head, the bound tags should be synced to the
rebased head's history.
4) Tags can appear multiple times, if they happen to be in the commit
history of multiple heads?

How to make sure that the invariant mentioned in (1) always holds?

> If you fetch remote head, its local subdirectory in refs/tags/ is
> populated with the new tags, and if you merge two heads, the public tags
> are copied around.

Ok, this is the "automatically updated" feature I talked about above.
So missing here is:
- If you want to get rid of a head, the tags should be removed
- If a head is rebased, this has to be detected and the tags recreated,
possibly removing some

Probably there should be a "cg-tag --recover" to resync these volatile
tags with tag objects appearing in the histories of heads?

As for lightweight tags of remote repositories, you probably need some
space to recover them e.g. on a rebase or creation of a new head without
running git-ls-remote all the time.

> Then if you are resolving a tag, we should first look 
> at refs/tags/$(readlink HEAD)/tagname, and if it doesn't exist, we would
> look at refs/tags/tagname (so if you wanted to reference a tag not in
> your head, you'd have to use a "head/tag" form).

Sounds nice.

> > Perhaps interpret tag objects as global branch names, similar to
> > the "mixture" in .git/refs ?
>
> I don't understand.

Tag objects in a repository could be interpreted as branch names
for commits based on it. When creating a new branch point, I first
would put a tag object on this branch, thus renaming it.
I think this would be quite handy for navigation in histories.

Josef

  reply	other threads:[~2005-09-27 13:27 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-23 22:24 Cogito: cg-clone doesn't like packed tag objects H. Peter Anvin
2005-09-24  1:18 ` Petr Baudis
2005-09-24  1:52   ` H. Peter Anvin
2005-09-24  2:00   ` Junio C Hamano
2005-09-24 12:50     ` Petr Baudis
2005-09-24 17:13       ` Daniel Barkalow
2005-09-24 18:10       ` Junio C Hamano
2005-11-09 22:33         ` Petr Baudis
2005-11-09 23:14           ` Junio C Hamano
2005-11-09 23:36             ` Nick Hengeveld
2005-11-09 23:44               ` Petr Baudis
2005-11-10  1:01                 ` Nick Hengeveld
2005-11-09 23:47               ` Junio C Hamano
2005-09-26 21:25   ` Petr Baudis
2005-09-26 21:55     ` Brian Gerst
2005-09-26 21:56       ` Petr Baudis
2005-09-26 22:23     ` Junio C Hamano
2005-09-26 22:29       ` Petr Baudis
2005-09-27  4:46         ` Junio C Hamano
2005-09-27  5:02           ` Tom Prince
2005-09-27  5:28             ` Junio C Hamano
2005-09-27  9:40               ` Petr Baudis
2005-09-27 10:14                 ` Josef Weidendorfer
2005-09-27 12:34                   ` Petr Baudis
2005-09-27 13:27                     ` Josef Weidendorfer [this message]
2005-09-27 17:07                 ` Junio C Hamano
2005-09-27 17:56                   ` Linus Torvalds
2005-09-27 18:36                     ` Junio C Hamano
2005-09-27 21:16                       ` Linus Torvalds
2005-09-27 21:44                         ` Linus Torvalds
2005-09-27 22:11                         ` Junio C Hamano
2005-09-28 17:22                         ` Junio C Hamano
2005-10-14  6:03                           ` Peeling the onion Junio C Hamano
     [not found]                             ` <46a038f90510140048r30c7ec36n35f77a1ac52c4691@mail.gmail.com>
2005-10-14  8:40                               ` Junio C Hamano
2005-09-26 22:37       ` Cogito: cg-clone doesn't like packed tag objects Junio C Hamano
2005-09-27  6:54     ` Sven Verdoolaege
2005-09-27  7:25     ` Ryan Anderson
2005-09-27 15:34       ` Linus Torvalds
2005-09-27 17:34         ` Ryan Anderson
2005-09-27 18:04           ` Linus Torvalds
2005-09-27  7:46     ` Junio C Hamano

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=200509271527.26050.Josef.Weidendorfer@gmx.de \
    --to=josef.weidendorfer@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=pasky@suse.cz \
    /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 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 NNTP newsgroup(s).