diff options
author | Brandon Casey <drafnel@gmail.com> | 2008-11-09 23:59:58 -0600 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-11-12 10:29:22 -0800 |
commit | daae06259556246959963947752bde4ee2df7b44 (patch) | |
tree | 173b309e6b071943447b676b9d0d7bd218b0bbf6 | |
parent | 0f4dc14ac4945448f7309964afeb879d20408e07 (diff) | |
download | git-daae06259556246959963947752bde4ee2df7b44.tar.gz git-daae06259556246959963947752bde4ee2df7b44.tar.xz |
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>
-rw-r--r-- | Documentation/git-pack-objects.txt | 2 | ||||
-rw-r--r-- | builtin-pack-objects.c | 3 | ||||
-rwxr-xr-x | t/t7700-repack.sh | 2 |
3 files changed, 5 insertions, 2 deletions
diff --git a/Documentation/git-pack-objects.txt b/Documentation/git-pack-objects.txt index f9fac2ccf..7d4c1a755 100644 --- a/Documentation/git-pack-objects.txt +++ b/Documentation/git-pack-objects.txt @@ -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:: diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c index 29c00474d..85bd795d3 100644 --- a/builtin-pack-objects.c +++ b/builtin-pack-objects.c @@ -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) { diff --git a/t/t7700-repack.sh b/t/t7700-repack.sh index 43c9cf913..960bff47f 100755 --- a/t/t7700-repack.sh +++ b/t/t7700-repack.sh @@ -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 && |