From: Junio C Hamano <junkio@cox.net>
To: Franck <vagabon.xyz@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: [QUESTION] about .git/info/grafts file
Date: Thu, 19 Jan 2006 17:14:02 -0800 [thread overview]
Message-ID: <7virsf7lb9.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: 7v8xtdrqwg.fsf@assigned-by-dhcp.cox.net
Junio C Hamano <junkio@cox.net> writes:
> It _might_ work if you tell your downloader to have a proper
> graft file in his repository to cauterize the commit ancestry
> chain _before_ he pulls from you, though. I haven't tried it
> (and honestly I did not feel that is something important to
> support, so it might work by accident but that is not by
> design).
I just tried it and it actually works.
$ git clone git.git junk
$ cd junk ;# I am not brave enough to risk the real thing ;-)
$ git rev-parse master~4 >.git/refs/info/grafts
$ cd ..
$ mkdir cloned
$ cd cloned
$ git init-db
$ cp ../junk/.git/info/grafts .git/info/
$ git clone-pack ../baz
$ git fsck-objects --full
$ git log --pretty=short | cat
This "only the tip of the git.git" repository has about 450
objects in it, fully packed because of clone-pack, with one 680K
packfile. I think the true full history of git.git/ packed into
one is aruond a 5MB packfile. I suspect a bigger repository
would not see that much size reduction, as Linus already
explained here.
You could emulate what I just did above to prepare the
equivalent of "baz" above, and make it available over git://
protocol, say at git://franck.example.com/franck.git/.
Then you tell your downloaders something like this:
This repository has been cauterized, and cannot be
cloned in a usual manner, but once you make a clone
everything including further incremental updates should
work.
To clone this repository:
$ mkdir franckproject ;# make a new repository
$ cd franckproject && git init-db
$ echo 'XXxxxxXXxxx' >.git/info/grafts
$ git clone-pack git://franck.example.com/franck.git/
next prev parent reply other threads:[~2006-01-20 1:14 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cda58cb80601170928r252a6e34y@mail.gmail.com>
2006-01-17 17:32 ` [QUESTION] about .git/info/grafts file Franck
2006-01-18 17:47 ` Franck
2006-01-19 0:40 ` Junio C Hamano
2006-01-19 10:51 ` Franck
2006-01-19 13:09 ` Petr Baudis
2006-01-19 16:58 ` Linus Torvalds
2006-01-19 17:30 ` Petr Baudis
2006-01-19 17:33 ` Franck
2006-01-19 17:49 ` Linus Torvalds
2006-01-19 18:24 ` Junio C Hamano
2006-01-19 18:24 ` Junio C Hamano
2006-01-20 13:43 ` Franck
2006-01-19 11:10 ` Andreas Ericsson
2006-01-19 13:05 ` Petr Baudis
2006-01-19 13:31 ` Franck
2006-01-19 13:44 ` Andreas Ericsson
2006-01-19 17:45 ` Petr Baudis
2006-01-20 20:48 ` Ryan Anderson
2006-01-20 1:14 ` Junio C Hamano [this message]
2006-01-20 10:07 ` Franck
2006-01-20 17:59 ` Junio C Hamano
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=7virsf7lb9.fsf@assigned-by-dhcp.cox.net \
--to=junkio@cox.net \
--cc=git@vger.kernel.org \
--cc=vagabon.xyz@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).