Re: efficient cloning
From: Jeff King <hidden>
Date: 2016-06-15 22:42:22
On Tue, Mar 21, 2006 at 12:42:02AM -0800, Junio C Hamano wrote:
The reason I would like to avoid .git/remotes/$origin is because it is designed to be Porcelainish thing. The underlying C-level git-fetch-pack never sees it; instead the information fed to C-level is prepared by the upper layer using that file. As far as I understand, Cogito does not understand it either, except that it ships with bash completion code that reads from filenames there.
Then why not create .git/refs/remotes/$origin/HEAD at the time of clone
(or later)? Then the core looks for:
(current order, .git/refs, etc)
.git/refs/remotes/foo
.git/refs/remotes/foo/HEAD
The porcelain can take care of managing the contents of HEAD. If there
is no HEAD in the directory, then it cannot be looked up by 'foo'
('foo/remote-branch' must be used instead).
-Peff