git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Junio C Hamano <junkio@cox.net>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Ingo Molnar <mingo@elte.hu>, git@vger.kernel.org
Subject: Re: full kernel history, in patchset format
Date: Sat, 16 Apr 2005 11:46:48 -0700	[thread overview]
Message-ID: <7vd5su7e5j.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <7vmzry7ev5.fsf@assigned-by-dhcp.cox.net> (Junio C. Hamano's message of "Sat, 16 Apr 2005 11:31:26 -0700")

>>>>> "JCH" == Junio C Hamano <junkio@cox.net> writes:

JCH> I have been cooking this idea before I dove into the merge stuff
JCH> and did not have time to implement it myself (Hint Hint), but I
JCH> think something along the following lines would work nicely:

It should be fairly obvious from the context what I meant to
say, but in case somebody gets confused by my inaccurate
description of small details (or, before somebody nitpicks ;-),
I'd add some clarifications and corrections.

JCH>  * Run diff-tree between neighboring commits [*1*] to find out
JCH>    the set of blobs that are "related".  Extract those related
JCH>    blobs and run "diff" [*2*] between them to see if it produces
JCH>    a patch smaller than the whole thing when compressed.  If
JCH>    diff+patch is a win, then we do not have to transmit the blob
JCH>    that we could reproduce by sending the diff.  Note that fact.

I talked only about blobs here, but I really mean all types:
commits, trees and blobs here.  Nothing prevents us from
extracting the raw data for trees and commits and run diff
between them.  We can use cat-file to do that today.

What we do not have is the reverse of "$ cat-file type >rawdata"
(i.e. "$ write-file type <rawdata"), but that is trivial to
write.  The raw data for related tree objects should delta well.
I do not think it is worth the effort to attempt delta for
commit objects.  Anything that git-archive-tar decides not to
send in diff+patch form, be it blob or tree or commit, should be
noted here, not just blob as my previous message incorrectly
implies.

JCH> Given the above, the operation of git-archive-patch is also
JCH> quite obvious.  Extract the "diff package" tarball into the
JCH> objects/ directory that has (at least) the full Bn, uncompress
JCH> the patch file part, and run patch on it. 

Of course after you ran patch to reproduce the raw data for the
blob or tree, we need the reverse of cat-file to register such
data under object/ hierarchy.


  parent reply	other threads:[~2005-04-16 18:43 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-16 13:15 full kernel history, in patchset format Ingo Molnar
2005-04-16 13:35 ` Ingo Molnar
2005-04-16 14:55   ` David Mansfield
2005-04-16 19:18     ` Ingo Molnar
2005-04-16 15:08 ` Francois Romieu
2005-04-16 17:04 ` Linus Torvalds
2005-04-16 17:43   ` Petr Baudis
2005-04-16 15:44     ` Christopher Li
2005-04-16 18:31   ` Junio C Hamano
2005-04-16 18:35     ` Mike Taht
2005-04-16 19:19       ` Junio C Hamano
2005-04-16 16:26         ` Christopher Li
2005-04-16 19:44           ` Junio C Hamano
2005-04-16 19:42         ` Mike Taht
2005-04-16 20:19           ` Daniel Barkalow
2005-04-16 18:46     ` Junio C Hamano [this message]
2005-04-16 19:13   ` Jan-Benedict Glaw
2005-04-16 19:23   ` Thomas Gleixner
2005-04-16 18:32     ` Petr Baudis
2005-04-16 18:36       ` Petr Baudis
2005-04-16 19:41       ` Thomas Gleixner
2005-04-16 18:44     ` Linus Torvalds
2005-04-16 19:50       ` Thomas Gleixner
2005-04-16 18:57         ` Petr Baudis
2005-04-16 19:27           ` Junio C Hamano
2005-04-16 19:15         ` Linus Torvalds
2005-04-16 20:35           ` Thomas Gleixner
2005-04-16 23:08     ` David Lang
2005-04-16 19:41   ` Ingo Molnar
2005-04-17 23:31   ` David Woodhouse
2005-04-17 23:39     ` Petr Baudis
2005-04-18  0:06       ` David Woodhouse
2005-04-18  0:35         ` Petr Baudis
2005-04-18  0:45           ` David Woodhouse
2005-04-18  0:50             ` Petr Baudis
2005-04-18  0:51               ` David Woodhouse
2005-04-18  0:59                 ` Petr Baudis
2005-04-18  1:16           ` Linus Torvalds
2005-04-18  1:36             ` David Woodhouse
2005-04-18 10:07 ` Catalin Marinas
2005-04-18 22:41   ` David Mansfield
2005-04-19  8:33     ` Catalin Marinas

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7vd5su7e5j.fsf@assigned-by-dhcp.cox.net \
    --to=junkio@cox.net \
    --cc=git@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=torvalds@osdl.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).