Re: Shallow clone of a specific git revision?
From: David Aguilar <hidden>
Date: 2024-11-15 05:00:47
On Wed, Nov 13, 2024 at 11:29:48AM +0100, Michal Suchánek wrote:
On Wed, Nov 13, 2024 at 11:23:47AM +0100, Toon Claes wrote:quoted
Michal Suchánek [off-list ref] writes:quoted
Hello, Looking through clone man page it supports shallow clones of branches and tags only. Would it be possible to do shallow clone of a specific revision, and checkout specific revision on clone?Hi Michal, I'm working on a patch, and I've submitted a first version [1] a little while ago to allow users to pass a reference on git-clone(1). Would this change fit your needs, or what else would you like to support?Hello, that slightly expands the available options but it does not make it possible to clone an arbitrary revision, ie. specified by a SHA Thanks Michal
In case it helps, here's a short recipe demonstrating how to do a
shallow "clone" of a specific commit ID:
git init the-repo
cd ./the-repo
git remote add origin <url>
git fetch --depth=1 origin <commit-id>
git checkout <commit-id>
It'd be nice to add this feature to "git clone" for convenience.
This recipe depends on the server's configuration. You must have one of
the following configuration variables set "true" server-side in order
for the server to accept requests for arbitrary commit IDs:
uploadpack.allowReachableSHA1InWant
Allow upload-pack to accept a fetch request that asks for an
object that is reachable from any ref tip. However, note that
calculating object reachability is computationally expensive.
Defaults to false. Even if this is false, a client may be able
to steal objects via the techniques described in the "SECURITY"
section of the gitnamespaces(7) man page; it’s best to keep
private data in a separate repository.
uploadpack.allowAnySHA1InWant
Allow upload-pack to accept a fetch request that asks for any
object at all. Defaults to false.
cheers,
--
David