Browse Source

pack-objects: extend --local to mean ignore non-local loose objects too

With this patch, --local means pack only local objects that are not already
packed.

Additionally, this fixes t7700 testing whether loose objects in an alternate
object database are repacked.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Brandon Casey 17 years ago committed by Junio C Hamano
parent
commit
daae062595
  1. 2
      Documentation/git-pack-objects.txt
  2. 3
      builtin-pack-objects.c
  3. 2
      t/t7700-repack.sh

2
Documentation/git-pack-objects.txt

@ -121,7 +121,7 @@ base-name:: @@ -121,7 +121,7 @@ base-name::
--local::
This flag is similar to `--incremental`; instead of
ignoring all packed objects, it only ignores objects
that are packed and not in the local object store
that are packed and/or not in the local object store
(i.e. borrowed from an alternate).

--non-empty::

3
builtin-pack-objects.c

@ -691,6 +691,9 @@ static int add_object_entry(const unsigned char *sha1, enum object_type type, @@ -691,6 +691,9 @@ static int add_object_entry(const unsigned char *sha1, enum object_type type,
return 0;
}

if (!exclude && local && has_loose_object_nonlocal(sha1))
return 0;

for (p = packed_git; p; p = p->next) {
off_t offset = find_pack_entry_one(sha1, p);
if (offset) {

2
t/t7700-repack.sh

@ -34,7 +34,7 @@ test_expect_success 'objects in packs marked .keep are not repacked' ' @@ -34,7 +34,7 @@ test_expect_success 'objects in packs marked .keep are not repacked' '
test -z "$found_duplicate_object"
'

test_expect_failure 'loose objects in alternate ODB are not repacked' '
test_expect_success 'loose objects in alternate ODB are not repacked' '
mkdir alt_objects &&
echo `pwd`/alt_objects > .git/objects/info/alternates &&
echo content3 > file3 &&

Loading…
Cancel
Save