Hello,
I'd like to make cg-clone use git-clone-pack instead of git-fetch-pack
so that it gets actually usable on large repositories, but I'm hitting
problems:
(i) git-clone-pack url HEAD doesn't work
If .git/HEAD already exists, it will panick because of the
write_one_ref()'s O_CREAT|O_EXCL. If .git/HEAD doesn't exist,
git-clone-pack refuses to do anything since it doesn't run
with valid GIT repository.
(ii) git-clone-pack has hardcoded assumptions about refs/heads/master
The problem is, git-clone-pack doesn't seem to care about what
ref does HEAD point to at the remote side, it just starts to
panic and do weird things if it isn't master, which seems
"really really wrong". Also, because git-clone-pack ... HEAD
doesn't work, I think I have no way to clone the actual HEAD
ref of the remote repository.
Overally, I think what I really need is git-fetch-pack (with it
outputting the ref info which I can write on my own, DTRT'ing from
the Cogito POV), just with the option not to unpack the pack.
I'd be very happy if fixing this would be possible before 1.0 so that
I can fix Cogito's fetching over git and ssh ASAP - git-clone-pack's
architecture seems to be way too much hardcoded to carry over head names
to the cloned repository (which is fine for the GIT porcelainish, but
not for Cogito philosophy).
PS: Sorry if this mail is a bit incoherent - I'm already falling
asleep over the keyboard, but I don't want to see GIT 1.0 fly by during
the night. ;-) BTW, Junio, do you have any timeline (more precise than
"in the coming week(s)") for the release, or are you just waiting for
"n days without big problem" or something like that?
Thanks,