[prev in list] [next in list] [prev in thread] [next in thread]
List: git
Subject: [PATCH v2 4/5] fsck: support lazy objects as CLI argument
From: Jonathan Tan <jonathantanmy () google ! com>
Date: 2017-07-31 21:02:46
Message-ID: c02229e54e5d8d4626ad6d39f223871dfa1df255.1501532294.git.jonathantanmy () google ! com
[Download RAW message or body]
Teach fsck to not treat missing objects provided on the CLI as an error
when extensions.lazyobject is set.
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
---
builtin/fsck.c | 2 ++
t/t0410-lazy-object.sh | 16 ++++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/builtin/fsck.c b/builtin/fsck.c
index 19681c5b3..20415902f 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -754,6 +754,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 (repository_format_lazy_object)
+ continue;
error("%s: object missing", oid_to_hex(&oid));
errors_found |= ERROR_OBJECT;
continue;
diff --git a/t/t0410-lazy-object.sh b/t/t0410-lazy-object.sh
index 45f665a15..3ac61c1c5 100755
--- a/t/t0410-lazy-object.sh
+++ b/t/t0410-lazy-object.sh
@@ -76,4 +76,20 @@ test_expect_success '...but succeeds if lazyobject is set' '
git -C repo fsck
'
+test_expect_success 'fsck fails on lazy object directly given in command-line' '
+ rm -rf repo &&
+ test_create_repo repo &&
+ test_commit -C repo 1 &&
+ HASH=$(git hash-object repo/1.t) &&
+ delete_object repo "$HASH" &&
+
+ test_must_fail git -C repo fsck "$HASH"
+'
+
+test_expect_success '...but succeeds if lazyobject is set' '
+ git -C repo config core.repositoryformatversion 1 &&
+ git -C repo config extensions.lazyobject "arbitrary string" &&
+ git -C repo fsck "$HASH"
+'
+
test_done
--
2.14.0.rc1.383.gd1ce394fe2-goog
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic