All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Hostetler <git@jeffhostetler.com>
To: git@vger.kernel.org
Cc: gitster@pobox.com, peff@peff.net, jonathantanmy@google.com
Subject: [PATCH v4 05/10] fsck: support promisor objects as CLI argument
Date: Thu, 16 Nov 2017 18:12:52 +0000	[thread overview]
Message-ID: <20171116181257.61673-6-git@jeffhostetler.com> (raw)
In-Reply-To: <20171116181257.61673-1-git@jeffhostetler.com>

From: Jonathan Tan <jonathantanmy@google.com>

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>
---
 builtin/fsck.c           |  2 ++
 t/t0410-partial-clone.sh | 13 +++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/builtin/fsck.c b/builtin/fsck.c
index 4c2a56d..578a7c8 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -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;
diff --git a/t/t0410-partial-clone.sh b/t/t0410-partial-clone.sh
index 4f9931f..e96f436 100755
--- a/t/t0410-partial-clone.sh
+++ b/t/t0410-partial-clone.sh
@@ -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
-- 
2.9.3


  parent reply	other threads:[~2017-11-16 18:13 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-16 18:12 [PATCH v4 00/10] Partial clone part 2: fsck and promisors Jeff Hostetler
2017-11-16 18:12 ` [PATCH v4 01/10] extension.partialclone: introduce partial clone extension Jeff Hostetler
2017-11-16 18:12 ` [PATCH v4 02/10] fsck: introduce partialclone extension Jeff Hostetler
2017-11-16 18:12 ` [PATCH v4 03/10] fsck: support refs pointing to promisor objects Jeff Hostetler
2017-11-16 18:12 ` [PATCH v4 04/10] fsck: support referenced " Jeff Hostetler
2017-11-16 18:12 ` Jeff Hostetler [this message]
2017-11-16 18:12 ` [PATCH v4 06/10] index-pack: refactor writing of .keep files Jeff Hostetler
2017-11-16 18:12 ` [PATCH v4 07/10] introduce fetch-object: fetch one promisor object Jeff Hostetler
2017-11-16 19:57   ` Ramsay Jones
2017-11-17 19:49     ` Jeff Hostetler
2017-11-17 20:17       ` Stefan Beller
2017-11-20 15:56         ` Jeff Hostetler
2017-11-17 20:22       ` Ramsay Jones
2017-11-16 18:12 ` [PATCH v4 08/10] sha1_file: support lazily fetching missing objects Jeff Hostetler
2017-11-16 18:12 ` [PATCH v4 09/10] rev-list: support termination at promisor objects Jeff Hostetler
2017-11-16 18:12 ` [PATCH v4 10/10] gc: do not repack promisor packfiles Jeff Hostetler
2017-11-16 21:57 ` [PATCH v4 00/10] Partial clone part 2: fsck and promisors Jonathan Tan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171116181257.61673-6-git@jeffhostetler.com \
    --to=git@jeffhostetler.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jonathantanmy@google.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.