Re: How to clone-pack the HEAD?
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:14
Petr Baudis [off-list ref] writes:
(i) git-clone-pack url HEAD doesn't work
"clone-pack url branchname" might work, but the thing is, nobody uses clone-pack with explicit heads arguments so if HEAD does not work I am not surprised at all.
(ii) git-clone-pack has hardcoded assumptions about refs/heads/master
I've read that part of the code twice in the past, but my recollection is it tries hard to "guess" where HEAD points at (because the remote side does not tell us, other than which commit object HEAD points at). When more than two branch heads point at the same commit as HEAD records, it gives preference to "master" branch while guessing, but otherwise there is nothing special about the "master" branch. The problem is, clone-pack is about cloning and not fetching. I am not claiming it is the right design decision --- after all, it was the oldest of the git native protocol driver suite --- but just stating where it stands with all the history behind its (and git-fetch-pack's) evolution. I think extending git-fetch-pack to optionally keep things packed would be somewhat painful but the right approach. Less painful and readily doable would be to run clone-pack as is, and reorganize the result of "copy of the remote" yourself. That would be a straightforward thing to do if you are using it for the initial cloning.