Re: Cogito: cg-clone doesn't like packed tag objects
- From
Petr Baudis <pasky@suse.cz>
- Date
- Sep 27, 2005, 12:34 UTC
- Message-ID
- <20050927123455.GE30889@pasky.or.cz>
- In-Reply-To
- <200509271214.31933.Josef.Weidendorfer@gmx.de>
Dear diary, on Tue, Sep 27, 2005 at 12:14:31PM CEST, I got a letter where Josef Weidendorfer <Josef.Weidendorfer@gmx.de> told me that...
Show 10 quoted lines
> On Tuesday 27 September 2005 11:40, Petr Baudis wrote: > > Another thing I proposed back then (I think it was in June) was having > > the refs/tags directory further divised based on heads, so all tags for > > head A would be in refs/tags/A/, etc. I didn't pursue this idea now > > because it seemed that there would be way too many duplicate stuff in > > refs/tags/ since most tags are likely to be shared across heads, but > > perhaps it is the beast and cleanest solution after all. > > The problem here is that currently there are no global, public branches. > And you should not mix private heads in refs/heads with global tags.
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.
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. 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). Optionally, you could also look for refs/tags/*/tagname and if it gives you a unique match, use that - but I'm not sure how good idea this is since it already makes the lookup way too heuristical.
> Perhaps interpret tag objects as global branch names, similar to > the "mixture" in .git/refs ?
I don't understand.
-- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ VI has two modes: the one in which it beeps and the one in which it doesn't.