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>
This commit is contained in:
Brandon Casey 2008-11-09 23:59:58 -06:00 коммит произвёл Junio C Hamano
Родитель 0f4dc14ac4
Коммит daae062595
3 изменённых файлов: 5 добавлений и 2 удалений

Просмотреть файл

@ -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::

Просмотреть файл

@ -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) {

Просмотреть файл

@ -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 &&