From: Dennis Kaarsemaker <dennis@kaarsemaker.net>
To: "Andres G. Aragoneses" <knocte@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: RFC: reverse history tree, for faster & background clones
Date: Fri, 12 Jun 2015 14:33:30 +0200 [thread overview]
Message-ID: <1434112410.5381.8.camel@kaarsemaker.net> (raw)
In-Reply-To: <mlegd8$t71$1@ger.gmane.org>
On vr, 2015-06-12 at 13:39 +0200, Andres G. Aragoneses wrote:
> On 12/06/15 13:33, Dennis Kaarsemaker wrote:
> > 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.
>
> In bare repos too?
Yes. A bare repo is nothing more than the .git dir of a non-bare repo
with the core.bare variable set to True :)
> >> 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 :)
>
> Thanks for pointing this out, do you mind giving me a link of some docs
> where I can correct my knowledge about this?
http://git-scm.com/book/en/v2/Git-Internals-Git-Objects should help.
> >> 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.
>
> You're right, didn't think about the feature that converts a --depth=1
> repo to a normal one. Then a patch that would create a --progressive
> flag (for instance, didn't think of a better name yet) for the `clone`
> command would actually be trivial to create, I assume, because it would
> just use `depth=1` and then retrieve the rest of the history in the
> background, right?
A naive implementation that does just clone --depth=1 and then fetch
--unshallow would probably not be too hard, no. But whether that would
be the 'right' way of implementing it, I wouldn't know.
--
Dennis Kaarsemaker
http://www.kaarsemaker.net
next prev parent reply other threads:[~2015-06-12 12:33 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-12 11:26 RFC: reverse history tree, for faster & background clones Andres G. Aragoneses
2015-06-12 11:33 ` Dennis Kaarsemaker
2015-06-12 11:39 ` Andres G. Aragoneses
2015-06-12 12:33 ` Dennis Kaarsemaker [this message]
2015-06-14 14:14 ` Andres G. Aragoneses
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1434112410.5381.8.camel@kaarsemaker.net \
--to=dennis@kaarsemaker.net \
--cc=git@vger.kernel.org \
--cc=knocte@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.