DORMANTno replies

[PATCH] tweak "bundle verify" of a complete history

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:53:59
Subsystem: the rest · Maintainer: Linus Torvalds

A bundle that records a complete history without prerequiste is a
useful way to sneakernet the sources of your configuration files
under your home directory, etc.  E.g.

    $ GIT_DIR=/srv/git/homesrc.git git bundle create x.bndl HEAD master

Running "git bundle verify" on such a "complete" bundle, however,
gives somewhat a funny output.

    $ git bundle verify x.bndl
    The bundle contains 2 refs
    b2611f37ebc7ed6435a72d77fbc5f8b48a7d7146 HEAD
    b2611f37ebc7ed6435a72d77fbc5f8b48a7d7146 refs/heads/master
    The bundle requires these 0 refs
    x.bndl is okay

Reword "requires these 0 refs" to say "The bundle records a complete
history" instead.

Signed-off-by: Junio C Hamano <redacted>
---

 * verify_bundle() is to check if you can fetch from the bundle into
   the current repository by verifying that you have the necessary
   commits and history behind them.  However, the command line UI
   "git bundle verify x.bndl" may look to the end users that it may
   also check the integrity of what is recorded in the bundle.  We
   may want to add fsck-like check to this function to make sure
   there is no corruption in the pack data.

   That is not the problem this patch tries to solve.  Hint, hint...

 bundle.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/bundle.c b/bundle.c
index 8d31b98..8d12816 100644
--- a/bundle.c
+++ b/bundle.c
@@ -188,12 +188,16 @@ int verify_bundle(struct bundle_header *header, int verbose)
 			     r->nr),
 			  r->nr);
 		list_refs(r, 0, NULL);
-		r = &header->prerequisites;
-		printf_ln(Q_("The bundle requires this ref",
-			     "The bundle requires these %d refs",
-			     r->nr),
-			  r->nr);
-		list_refs(r, 0, NULL);
+		if (!r->nr) {
+			printf_ln(_("The bundle records a complete history."));
+		} else {
+			r = &header->prerequisites;
+			printf_ln(Q_("The bundle requires this ref",
+				     "The bundle requires these %d refs",
+				     r->nr),
+				  r->nr);
+			list_refs(r, 0, NULL);
+		}
 	}
 	return ret;
 }
	
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help