$ git clone --no-checkout $URL/repo.git
$ cd repo/
$ git sparse-checkout init
$ git sparse-checkout set subdirectory_i_want
$ git checkout mainThe command above downloads the whole repo history. You could do a depth=1 to skip the history, but it still downloads the he latest version of the entire repo tree.
Combined with --depth=1 and the --no-checkout / --sparse-checkout flow that the GP already described.
I just tested on the emacs repo, left column is disk usage of just the `.git` folder inside:
Shallow clones (depth=1):
124K: Treeless clone depth=1 with no-checkout
308K: Blobless clone depth=1 with no-checkout
12M: Treeless clone depth=1 sparse checkout of "doc" folder
12M: Blobless clone depth=1 sparse checkout of "doc" folder
53M: Treeless clone depth=1 non-sparse full checkout
53M: Blobless clone depth=1 non-sparse full checkout
53M: Regular clone with depth=1
Non-shallow clones:
54M: Treeless clone with no-checkout
124M: Blobless clone with no-checkout
65M: Treeless clone sparse checkout of "doc" folder
135M: Blobless clone sparse checkout of "doc" folder
107M: Treeless clone with non-sparse full checkout
177M: Blobless clone with non-sparse full checkout
653M: Full regular git clone with no flags
Great tech talk covering some of the newer lesser-known git features: https://www.youtube.com/watch?v=aolI_Rz0ZqYCould've been a shell script[2]
[1] https://github.com/zikani03/git-down/blob/cb2763020edc81e464...
mkdir -p <out_dir> && git archive --remote=<remote> --format=tar.gz <branch> <files...> | tar -xzC <out_dir>
Strangely, github does not support this, so tested with bitbucket.Actually doing this in Rust with lower-level libraries like gix would have been interesting.
But I'm willing to take up that challenge and test out gix, I've regained my interest in Rust so the timing is good :)
svn checkout https://github.com/tensorflow/tensorflow/trunk/tensorflow/ex...
luismedel•5mo ago
And then we wonder how the fuck we end with malware in our systems.
panki27•5mo ago