git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Mike Hommey <mh@glandium.org>
Cc: Kevin Ballard <kevin@sb.org>, Git Mailing List <git@vger.kernel.org>
Subject: Re: git filter-branch should run git gc --auto
Date: Wed, 23 Jan 2008 11:22:23 -0800	[thread overview]
Message-ID: <7vfxwoibyo.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <20080123064430.GD16297@glandium.org> (Mike Hommey's message of "Wed, 23 Jan 2008 07:44:30 +0100")

Mike Hommey <mh@glandium.org> writes:

> I wonder if it wouldn't be possible to have filter-branch use
> fast-import, so that it would create a pack instead of a lot of loose
> objects.

I do not think it will help.  The objects in packs fast-import
creates cannot be accessed from outside fast-import.  Not even
the rest of the core routines running inside that fast-import
process cannot access them via the usual read_sha1_file()
interface, as described in detail in a recent thread [*1*].  The
only way to make it available while you are still feeding new
data to fast-import is to explicitly tell it to finalize the
current pack by issuing a 'mark' command (and fast-import will
start writing to a new pack).

And filters need to be able to read the objects previous steps
produced to do their work.

Which means that instead of having to deal with many loose
objects, you will now face many little packs, each contains data
changed perhaps at most one commit's worth.  You would need to
"repack -a -d" to consolidate these little packs every once in a
while, and I suspect more often than you would need to repack
loose objects, as handling many packs is much more expensive
than handling many loose objects.

[Reference]

*1* http://thread.gmane.org/gmane.comp.version-control.git/70964/focus=71076

  parent reply	other threads:[~2008-01-23 19:23 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-18 12:17 git-svn should default to --repack Kevin Ballard
2008-01-18 15:56 ` Karl Hasselström
2008-01-18 20:44   ` Junio C Hamano
2008-01-19 12:35     ` Karl Hasselström
2008-01-19 15:05       ` Kevin Ballard
2008-01-19 22:36       ` [PATCH] Let "git svn" run "git gc --auto" occasionally Karl Hasselström
2008-01-19 22:50         ` Harvey Harrison
2008-01-20  3:37           ` Eric Wong
2008-01-20  9:34             ` Karl Hasselström
2008-01-20 19:17               ` Junio C Hamano
2008-01-21 22:48                 ` Eric Wong
2008-01-22  0:30                   ` Junio C Hamano
2008-01-22  0:39                     ` Eric Wong
2008-01-22  1:52                       ` Junio C Hamano
2008-01-23  2:43                         ` git filter-branch should run git gc --auto Kevin Ballard
2008-01-23  2:46                           ` Junio C Hamano
2008-01-23  2:52                             ` Junio C Hamano
2008-01-23  3:03                               ` Kevin Ballard
2008-01-23  2:54                             ` Harvey Harrison
2008-01-23  2:58                             ` Kevin Ballard
2008-01-23  5:07                               ` Sam Vilain
2008-01-23  8:18                                 ` Kevin Ballard
2008-01-23  6:44                             ` Mike Hommey
2008-01-23 13:00                               ` Johannes Schindelin
2008-01-23 19:22                               ` Junio C Hamano [this message]
2008-02-03 16:55                   ` [PATCH 0/2] "git svn" and "git gc --auto" Karl Hasselström
2008-02-03 16:56                     ` [PATCH 1/2] git-svn: Don't call git-repack anymore Karl Hasselström
2008-02-03 16:56                     ` [PATCH 2/2] Let "git svn" run "git gc --auto" occasionally Karl Hasselström
2008-01-20 21:39               ` [PATCH 1/2] git-svn: Don't call git-repack anymore Karl Hasselström
2008-01-20 21:40               ` [PATCH 2/2] Let "git svn" run "git gc --auto" occasionally Karl Hasselström

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=7vfxwoibyo.fsf@gitster.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=kevin@sb.org \
    --cc=mh@glandium.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 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).