mirror of
https://github.com/git/git.git
synced 2024-11-27 20:14:30 +08:00
fsck: support promisor objects as CLI argument
Teach fsck to not treat missing promisor objects provided on the CLI as an error when extensions.partialclone is set. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
caba7fc31a
commit
096c9b8be9
@ -750,6 +750,8 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)
|
||||
struct object *obj = lookup_object(oid.hash);
|
||||
|
||||
if (!obj || !(obj->flags & HAS_OBJ)) {
|
||||
if (is_promisor_object(&oid))
|
||||
continue;
|
||||
error("%s: object missing", oid_to_hex(&oid));
|
||||
errors_found |= ERROR_OBJECT;
|
||||
continue;
|
||||
|
@ -125,4 +125,17 @@ test_expect_success 'missing object, but promised, passes fsck' '
|
||||
git -C repo fsck
|
||||
'
|
||||
|
||||
test_expect_success 'missing CLI object, but promised, passes fsck' '
|
||||
rm -rf repo &&
|
||||
test_create_repo repo &&
|
||||
test_commit -C repo my_commit &&
|
||||
|
||||
A=$(git -C repo commit-tree -m a HEAD^{tree}) &&
|
||||
promise_and_delete "$A" &&
|
||||
|
||||
git -C repo config core.repositoryformatversion 1 &&
|
||||
git -C repo config extensions.partialclone "arbitrary string" &&
|
||||
git -C repo fsck "$A"
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user