t7700: demonstrate misbehavior of 'repack -a' when local packs exist
commita83c88525ed6d8d940f8cf7f21e92b189f7844e3
authorBrandon Casey <casey@nrlssc.navy.mil>
Fri, 9 Jan 2009 22:14:39 +0000 (9 16:14 -0600)
committerJunio C Hamano <gitster@pobox.com>
Sun, 18 Jan 2009 07:44:33 +0000 (17 23:44 -0800)
tree67c0dad263cb13553c99e137147bca2a853c3d93
parent7a38329130f05e00ad73c2794d94b869f16bca2f
t7700: demonstrate misbehavior of 'repack -a' when local packs exist

The ability to "...fatten [the] local repository by packing everything that
is needed by the local ref into a single new pack, including things that are
borrowed from alternates"[1] is supposed to be provided by the '-a' or '-A'
options to repack when '-l' is not used, but there is a flaw.  For each
pack in the local repository without a .keep file, repack supplies a
--unpacked=<pack> argument to pack-objects.

The --unpacked option to pack-objects, with or without an argument, causes
pack-objects to ignore any object which is packed in a pack not mentioned
in an argument to --unpacked=.  So, if there are local packs, and
'repack -a' is called, then any objects which reside in packs accessible
through alternates will _not_ be packed.  If there are no local packs, then
no --unpacked argument will be supplied, and repack will behave as expected.

[1] http://mid.gmane.org/7v8wrwidi3.fsf@gitster.siamese.dyndns.org

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7700-repack.sh