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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <gitster@xxxxxxxxx>
---

 * 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;
 }
	
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]