Thread (8 messages) 8 messages, 6 authors, 2025-09-07

Re: Doing blobless clone by default; switching between blobless, treeless and full clones by a command

From: Ben Knoble <hidden>
Date: 2025-09-07 19:42:44

Le 4 sept. 2025 à 05:37, Дилян Палаузов [off-list ref] a écrit :

Hello,

Rationale:

The reason people execute  git clone  is hardly to issue immediately afterwards  git log  or  git annotate.
Maybe for you, and maybe in many contexts, but I also frequently clone things to run various history spelunking searches on them. 
 The reason for git clone is to (try changing something and then) build the software. (Provided that git manages source code.)  Doing by default a reduced data download with  git clone  will sped up the initialization, it will save bytes in transit and reduce server load.  In fact I think that by default (without extra configuration)  git clone  should do a reduced download (blobless) and
git should download the other things, when asked to do so.  
Absolutely not (in my opinion, :p). Not having the entire repository available except when connected to a network defeats the tremendous advantage of distributed version control. Namely, privileged forks are given status by social agreement, not technical requirement. I want the whole repository available independently. 
This default download preference should be ideally managed by an option in global gitconfig .  When looking at https://git-scm.com/docs/git-config for “filter” I do not recognize anything relevant.
This seems more moderated and achievable. If you would prefer to clone less by default (I would not), go for it. I mostly don’t work with repos where this matters, though, or where git-maintenance doesn’t do most of the job I need after a 1-time setup cost.

I do chastise folks for mis-managing large binary files in history that create large blobs and clone times, though :)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help