On Fri, Oct 30, 2009 at 00:10, Daniel Barkalow <barkalow@xxxxxxxxxxxx> wrote: > Actually, I think the problem is that builtin-clone will always default to > setting up a refspec of "refs/heads/*:refs/remotes/origin/*", but that > doesn't actually make any sense if the source repository isn't presented > as having refs names like "refs/heads/*". The immediate problem that you > don't get HEAD because it's a symref to something outside the pattern is > somewhat secondary to the general problem that you don't get anything at > all, because everything's outside the pattern. Ah, I didn't realize that as long as HEAD is a symref to something in refs/heads/* it would be fetched. > I don't really think that presenting the real refs in refs/<vcs>/*, and > having the list give symrefs to them from refs/heads/* and refs/tags/* > really makes sense; I think it would be better to rework fetch_with_import > and the list provided by a foreign vcs helper such that it can present > refs with normal names (refs/heads/*, refs/tags/*, etc) if the foreign vcs > has standards that correspond to branches and tags. Then "clone" would > work normally. Perhaps we could introduce an additional phase before import to set the default refspec? If we could tell git that we want "refs/heads/*:refs/hg/origin/*" before line 468 "if (option_bare) {", that would save us a lot of trouble. Does that sound like a good idea? It would mean we have to move the transport_get part up a bit, but I don't think that will be a problem. A svn helper for example might respond the following to the "refspec" command: "refs/heads/trunkr:refs/svn/origin/trunk" "refs/tags/*:refs/svn/origin/tags/*" "refs/heads/*:refs/svn/origin/branches/*" How does that sound? -- Cheers, Sverre Rabbelier -- 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