[PATCH] clone-pack: new option --keep to keep the pack unexploded.
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:08
Subsystem:
documentation, the rest · Maintainers:
Jonathan Corbet, Linus Torvalds
With new option --keep, or a configuration item clone.keeppack (we
need a better name, or start allowing dash,"clone.keep-pack"), the packed
data downloaded while cloning is saved as a pack in .git/objects/pack/
locally, with index generated for it with git-index-pack.
Signed-off-by: Junio C Hamano <redacted>
---
* Here is how to use it.
$ mkdir test
$ cd test
$ git-init-db
defaulting to local storage area
$ git-clone-pack --keep ../other/repo/sito/ry/.git
Packing 9044 objects
$ git-checkout
After cloning, you would notice there is no individual
objects; instead you will find a single packfile in
.git/objects/pack/ directory.
Documentation/git-clone-pack.txt | 7 ++++++-
clone-pack.c | 3 ++-
2 files changed, 8 insertions(+), 2 deletions(-)
applies-to: fa5213875bff7fdb8c7d05f35a047eedf3cb3af2
b64a46c81d8347e59285584e830e1ad99ad387e0diff --git a/Documentation/git-clone-pack.txt b/Documentation/git-clone-pack.txt
index 87c0e46..b58165a 100644
--- a/Documentation/git-clone-pack.txt
+++ b/Documentation/git-clone-pack.txt@@ -8,7 +8,7 @@ git-clone-pack - Clones a repository by SYNOPSIS -------- -'git-clone-pack' [-q] [--exec=<git-upload-pack>] [<host>:]<directory> [<head>...] +'git-clone-pack' [-q] [--keep] [--exec=<git-upload-pack>] [<host>:]<directory> [<head>...] DESCRIPTION -----------
@@ -23,6 +23,11 @@ OPTIONS Pass '-q' flag to 'git-unpack-objects'; this makes the cloning process less verbose. +--keep:: + Do not invoke 'git-unpack-objects' on received data, but + create a single packfile out of it instead, and store it + in the object database. + --exec=<git-upload-pack>:: Use this to specify the path to 'git-upload-pack' on the remote side, if it is not found on your $PATH.
diff --git a/clone-pack.c b/clone-pack.c
index 9567900..2f09df0 100644
--- a/clone-pack.c
+++ b/clone-pack.c@@ -5,7 +5,8 @@ static int quiet; static int keep_pack; -static const char clone_pack_usage[] = "git-clone-pack [-q] [--exec=<git-upload-pack>] [<host>:]<directory> [<heads>]*"; +static const char clone_pack_usage[] = +"git-clone-pack [-q] [--keep] [--exec=<git-upload-pack>] [<host>:]<directory> [<heads>]*"; static const char *exec = "git-upload-pack"; static void clone_handshake(int fd[2], struct ref *ref)
--- 0.99.8.GIT