Subject: Re: RFC: reverse history tree, for faster & background clones

From: Dennis Kaarsemaker <[email-masked]>
Date: Fri, 12 Jun 2015 13:33:35 +0200

On vr, 2015-06-12 at 13:26 +0200, Andres G. Aragoneses wrote:

> AFAIU git stores the contents of a repo as a sequence of patches in the 
> .git metadata folder. 

It does not, it stores full snapshots of files.

[I've cut the example, as it's not how git works]

> 1. `git clone --depth 1` would be way faster, and without the need of 
> on-demand compressing of packfiles in the server side, correct me if I'm 
> wrong?

You're wrong due to the misunderstanding of how git works :)

> 2. `git clone` would be able to allow a "fast operation, complete in the 
> background" mode that would allow you to download the first snapshot of 
> the repo very quickly, so that the user would be able to start working 
> on his working directory very quickly, while a "background job" keeps 
> retreiving the history data in the background.

This could actually be a good thing, and can be emulated now with git
clone --depth=1 and subsequent fetches in the background to deepen the
history. I can see some value in clone doing this by itself, first doing
a depth=1 fetch, then launching itself into the background, giving you a
worktree to play with earlier.

-- 
Dennis Kaarsemaker
http://www.kaarsemaker.net