All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Shawn O. Pearce" <spearce@spearce.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "J. Bruce Fields" <bfields@fieldses.org>,
	Michael Hendricks <michael@ndrix.org>,
	git@vger.kernel.org
Subject: Re: removing content from git history
Date: Wed, 21 Feb 2007 16:00:45 -0500	[thread overview]
Message-ID: <20070221210045.GB26525@spearce.org> (raw)
In-Reply-To: <Pine.LNX.4.64.0702210934470.4043@woody.linux-foundation.org>

Linus Torvalds <torvalds@linux-foundation.org> wrote:
> Anyway, git-convert-objects does kind of give you a starting point. It 
> should be fixed to use "git-fast-import" or repack once in a while (so 
> that it doesn't leave tons and tons of unpacked objects), and it should be 
> fixed to fix up any commit messages that mention SHA1's that it has 
> already converted to something else, but it seems to still work. It would 
> not be impossible at all to extend the tree-rewriting logic to remove some 
> file or a particular SHA1 object you want to replace.

One idea Junio and I kicked around on #git a short while ago
was to arrange for a pipe between the current Git process
and git-fast-import, where the pipe was used from within
write_sha1_file() rather than creating the loose object.

This way an existing process like git-apply or git-convert-objects
could easily spew hundreds of thousands of objects without needing
to worry about repacking in the middle; nor would we need to worry
about the complexity of trying to disentagle the multiobject packing
parts of fast-import into some sort of library.

Obviously this is only a good idea if we are going to be making
enough objects to warrant using a packfile; small 10-20 bursts
of objects from a git-apply doesn't really justify a packfile.
But applying 100s of patches in a row might, if we could keep them
all fed through the same git-fast-import backend (and thus into
the same packfile).

-- 
Shawn.

  parent reply	other threads:[~2007-02-21 21:01 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-21 16:45 removing content from git history Michael Hendricks
2007-02-21 16:56 ` Shawn O. Pearce
2007-02-21 17:17   ` J. Bruce Fields
2007-02-21 18:02     ` Linus Torvalds
2007-02-21 18:24       ` Linus Torvalds
2007-02-21 21:00       ` Shawn O. Pearce [this message]
2007-02-21 21:11         ` Linus Torvalds
2007-02-21 21:21           ` Shawn O. Pearce
2007-10-09 20:58             ` Bill Lear
2007-10-09 21:02               ` J. Bruce Fields
2007-10-09 22:25                 ` Bill Lear
2007-10-10 14:41               ` Johannes Schindelin
2007-02-21 17:14 ` Linus Torvalds
2007-02-21 18:02   ` Nicolas Pitre
2007-02-21 18:13     ` Linus Torvalds
2007-02-21 18:39       ` Nicolas Pitre
2007-02-21 18:30   ` Michael Hendricks
2007-02-21 18:37     ` Shawn O. Pearce
2007-02-21 18:47     ` Linus Torvalds
2007-02-21 18:56       ` Linus Torvalds
2007-02-21 18:52     ` Nicolas Pitre
2007-02-21 19:01   ` Junio C Hamano
2007-02-21 19:33     ` Nicolas Pitre
2007-02-21 20:22       ` Junio C Hamano
2007-02-21 20:49         ` Nicolas Pitre

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=20070221210045.GB26525@spearce.org \
    --to=spearce@spearce.org \
    --cc=bfields@fieldses.org \
    --cc=git@vger.kernel.org \
    --cc=michael@ndrix.org \
    --cc=torvalds@linux-foundation.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.
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.