<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/git.git/git-repack.sh, branch v1.8.0.2</title>
<subtitle>Git
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/git.git/atom?h=v1.8.0.2</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/atom?h=v1.8.0.2'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/'/>
<updated>2012-04-11T18:09:49Z</updated>
<entry>
<title>gc: do not explode objects which will be immediately pruned</title>
<updated>2012-04-11T18:09:49Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2012-04-07T10:30:09Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=7e52f5660e542cf801e8fc6902a30cc572c13736'/>
<id>urn:sha1:7e52f5660e542cf801e8fc6902a30cc572c13736</id>
<content type='text'>
When we pack everything into one big pack with "git repack
-Ad", any unreferenced objects in to-be-deleted packs are
exploded into loose objects, with the intent that they will
be examined and possibly cleaned up by the next run of "git
prune".

Since the exploded objects will receive the mtime of the
pack from which they come, if the source pack is old, those
loose objects will end up pruned immediately. In that case,
it is much more efficient to skip the exploding step
entirely for these objects.

This patch teaches pack-objects to receive the expiration
information and avoid writing these objects out. It also
teaches "git gc" to pass the value of gc.pruneexpire to
repack (which in turn learns to pass it along to
pack-objects) so that this optimization happens
automatically during "git gc" and "git gc --auto".

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Acked-by: Nicolas Pitre &lt;nico@fluxnic.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'tr/maint-git-repack-tmpfile'</title>
<updated>2010-11-17T23:01:23Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2010-11-17T23:01:23Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=bee5e65c75d53efe00654a181542dbb5e3b5b53b'/>
<id>urn:sha1:bee5e65c75d53efe00654a181542dbb5e3b5b53b</id>
<content type='text'>
* tr/maint-git-repack-tmpfile:
  repack: place temporary packs under .git/objects/pack/
</content>
</entry>
<entry>
<title>repack: place temporary packs under .git/objects/pack/</title>
<updated>2010-10-19T16:23:24Z</updated>
<author>
<name>Thomas Rast</name>
<email>trast@student.ethz.ch</email>
</author>
<published>2010-10-19T09:50:43Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=e32dfec79f99738df3c2ffca8a9b2257c9b681fb'/>
<id>urn:sha1:e32dfec79f99738df3c2ffca8a9b2257c9b681fb</id>
<content type='text'>
git-pack-objects is already careful to start out its temporary packs
under .git/objects/pack/ (cf. 8b4eb6b, Do not perform cross-directory
renames when creating packs, 2008-09-22), but git-repack did not
respond in kind so the effort was lost when the filesystem boundary is
exactly at that directory.

Let git-repack pass a path under .git/objects/pack/ as the base for
its temporary packs.

This means we might need the $PACKDIR sooner (before the pack-objects
invocation), so move the mkdir up just to be safe.

Also note that the only use of *.pack is in the find invocation way
before the pack-objects call, so the temporary packs will not suddenly
show up in any wildcards because of the directory change.

Reported-by: Marat Radchenko &lt;marat@slonopotamus.org&gt;
Signed-off-by: Thomas Rast &lt;trast@student.ethz.ch&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>repack: add -F flag to let user choose between --no-reuse-delta/object</title>
<updated>2010-09-27T19:39:05Z</updated>
<author>
<name>Jan Krüger</name>
<email>jk@jk.gs</email>
</author>
<published>2010-09-27T12:19:36Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=5c47e1c7c56c60360646367e4067ed344a833b01'/>
<id>urn:sha1:5c47e1c7c56c60360646367e4067ed344a833b01</id>
<content type='text'>
In 479b56ba ('make "repack -f" imply "pack-objects --no-reuse-object"'),
git repack -f was changed to include recompressing all objects on the
zlib level on the assumption that if the user wants to spend that much
time already, some more time won't hurt (and recompressing is useful if
the user changed the zlib compression level).

However, "some more time" can be quite long with very big repositories,
so some users are going to appreciate being able to choose. If we are
going to give them the choice, --no-reuse-object will probably be
interesting a lot less frequently than --no-reuse-delta. Hence, this
reverts -f to the old behaviour (--no-reuse-delta) and adds a new -F
option that replaces the current -f.

Measurements taken using this patch on a current clone of git.git
indicate a 17% decrease in time being made available to users:

git repack -Adf  34.84s user 0.56s system 145% cpu 24.388 total
git repack -AdF  38.79s user 0.56s system 133% cpu 29.394 total

Signed-off-by: Jan Krüger &lt;jk@jk.gs&gt;
Acked-by: Nicolas Pitre &lt;nico@fluxnic.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'js/maint-graft-unhide-true-parents'</title>
<updated>2009-07-25T07:45:03Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2009-07-25T07:45:03Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=130b04ab37d74e574d525df7948b963b13c6bdbf'/>
<id>urn:sha1:130b04ab37d74e574d525df7948b963b13c6bdbf</id>
<content type='text'>
* js/maint-graft-unhide-true-parents:
  git repack: keep commits hidden by a graft
  Add a test showing that 'git repack' throws away grafted-away parents

Conflicts:
	git-repack.sh
</content>
</entry>
<entry>
<title>git repack: keep commits hidden by a graft</title>
<updated>2009-07-24T16:10:16Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2009-07-23T15:33:49Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=7f3140cd23f126e578ccaaea8c2cebe36824a7ac'/>
<id>urn:sha1:7f3140cd23f126e578ccaaea8c2cebe36824a7ac</id>
<content type='text'>
When you have grafts that pretend that a given commit has different
parents than the ones recorded in the commit object, it is dangerous
to let 'git repack' remove those hidden parents, as you can easily
remove the graft and end up with a broken repository.

So let's play it safe and keep those parent objects and everything
that is reachable by them, in addition to the grafted parents.

As this behavior can only be triggered by git pack-objects, and as that
command handles duplicate parents gracefully, we do not bother to cull
duplicated parents that may result by using both true and grafted
parents.

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>submodule, repack: migrate to git-sh-setup's say()</title>
<updated>2009-06-18T16:50:37Z</updated>
<author>
<name>Stephen Boyd</name>
<email>bebarino@gmail.com</email>
</author>
<published>2009-06-16T22:33:00Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=2e6a30ef8fbaedc5f2ee199d36f7256bb0cfdf1e'/>
<id>urn:sha1:2e6a30ef8fbaedc5f2ee199d36f7256bb0cfdf1e</id>
<content type='text'>
Now that there is say() in git-sh-setup, these scripts don't need to use
their own. Migrate them over by setting GIT_QUIET and removing their
custom say() functions.

Signed-off-by: Stephen Boyd &lt;bebarino@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'maint'</title>
<updated>2009-04-05T08:17:08Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2009-04-05T08:17:08Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=81aa96497686bd31c5a9a3cdf110c2e10c799c03'/>
<id>urn:sha1:81aa96497686bd31c5a9a3cdf110c2e10c799c03</id>
<content type='text'>
* maint:
  git submodule: fix usage line
  doc/git-pack-refs: fix two grammar issues
  commit: abort commit if interactive add failed
  git-repack: use non-dashed update-server-info
</content>
</entry>
<entry>
<title>git-repack: use non-dashed update-server-info</title>
<updated>2009-04-05T07:08:49Z</updated>
<author>
<name>Dan McGee</name>
<email>dpmcgee@gmail.com</email>
</author>
<published>2009-04-04T16:59:55Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=e1dc49bcdefd362e129c9ee3a85527b518f9b49d'/>
<id>urn:sha1:e1dc49bcdefd362e129c9ee3a85527b518f9b49d</id>
<content type='text'>
Signed-off-by: Dan McGee &lt;dpmcgee@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jc/maint-1.6.0-keep-pack'</title>
<updated>2009-04-02T05:34:19Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2009-04-02T05:34:19Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=3c91bf6805249d0f59ddff4e5dc4118127527243'/>
<id>urn:sha1:3c91bf6805249d0f59ddff4e5dc4118127527243</id>
<content type='text'>
* jc/maint-1.6.0-keep-pack:
  pack-objects: don't loosen objects available in alternate or kept packs
  t7700: demonstrate repack flaw which may loosen objects unnecessarily
  Remove --kept-pack-only option and associated infrastructure
  pack-objects: only repack or loosen objects residing in "local" packs
  git-repack.sh: don't use --kept-pack-only option to pack-objects
  t7700-repack: add two new tests demonstrating repacking flaws

Conflicts:
	t/t7700-repack.sh
</content>
</entry>
</feed>
