On Tuesday 01 February 2011, Jeff King wrote: > On Tue, Feb 01, 2011 at 05:44:50PM +0700, Nguyen Thai Ngoc Duy wrote: > > OK I'm not familiar with tag code, but I can try. > > > > Proposal: > > > > Reserve refs/remote-tags namespace to store tags from remotes. Its > > structure is the same as in refs/remotes. When pulling tags, put them > > in refs/remote-tags/<remote> instead of refs/tags. > > Tag dereference code will be taught about refs/remote-tags with > > similar deref order as in remote branches. > > There are similar questions around remote notes refs. Should there also > be a refs/remote-notes? And there was some discussion recently about > fetching remote replace refs. > > Should we perhaps be massaging refs/remotes into a structure to handle > all of these things? Like: > > refs/remotes/origin/HEAD (-> refs/remotes/origin/heads/master) > refs/remotes/origin/heads/master > refs/remotes/origin/tags/v1.7.4 > refs/remotes/origin/notes/commit > refs/remotes/origin/replace/f67e92af477a2255b64a1ece33d9d126e763fe9b > > i.e., make refs/remotes/* an actual mirror of selected parts of the > remote's refs/ hierarchy. And then figure out sane rules for merging > those namespaces into the ref lookup procedure. For heads and tags, > probably some tweaking of the lookup rules in dwim_ref; for > replacements, probably you would want to manually say "I am interested > in this replace" and copy or symref-link it into your refs/ hierarchy. I fully agree. In addition - as discussed in http://thread.gmane.org/gmane.comp.version- control.git/160503/focus=160795 - we should also tweak the refspec format to make tag auto-following explicit in the refspec. > And probably something similar with notes. (going slightly offtopic with the notes discussion here) I've been thinking that notes should be organized much in the same fashion as branches/heads. There should be remote notes refs that should only be updated from the remote, and there should be local notes refs in refs/notes/*. You should be able to configure upstream relationships between local notes refs and remote notes refs (e.g. notes.foo.remote and notes.foo.merge), and auto-merge them on "git notes pull". Have fun! :) ...Johan -- Johan Herland, <johan@xxxxxxxxxxx> www.herland.net -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html