summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: d46ad9c)
raw | patch | inline | side by side (parent: d46ad9c)
author | Junio C Hamano <junkio@cox.net> | |
Thu, 14 Jul 2005 03:25:54 +0000 (20:25 -0700) | ||
committer | Linus Torvalds <torvalds@g5.osdl.org> | |
Thu, 14 Jul 2005 03:42:26 +0000 (20:42 -0700) |
While adding the documentation for these two commands, I noticed
that the name of the program on the other end (git-upload-pack)
is already almost configurable but git-clone-pack lacked command
line parameter parsing to actually use anything but default, so
I introduced --exec= like other remote commands while I was at it.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
that the name of the program on the other end (git-upload-pack)
is already almost configurable but git-clone-pack lacked command
line parameter parsing to actually use anything but default, so
I introduced --exec= like other remote commands while I was at it.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Documentation/git-clone-pack.txt | [new file with mode: 0644] | patch | blob |
Documentation/git-clone-script.txt | [new file with mode: 0644] | patch | blob |
Documentation/git.txt | patch | blob | history | |
clone-pack.c | patch | blob | history | |
git-clone-script | patch | blob | history |
diff --git a/Documentation/git-clone-pack.txt b/Documentation/git-clone-pack.txt
--- /dev/null
@@ -0,0 +1,60 @@
+git-clone-pack(1)
+=================
+v0.1, July 2005
+
+NAME
+----
+git-clone-pack - Clones a repository by receiving packed objects.
+
+
+SYNOPSIS
+--------
+'git-clone-pack' [-q] [--exec=<git-upload-pack>] [<host>:]<directory> [<heads>...]
+
+DESCRIPTION
+-----------
+Clones a repository into the current repository by invoking
+'git-upload-pack', possibly on the remote host via ssh, in
+the named repository, and invoking 'git-unpack-objects' locally
+to receive the pack.
+
+OPTIONS
+-------
+-q::
+ Pass '-q' flag to 'git-unpack-objects'; this makes the
+ cloning process less verbose.
+
+--exec=<git-upload-pack>::
+ Use this to specify the path to 'git-upload-pack' on the
+ remote side, if is not found on your $PATH.
+ Installations of sshd ignores the user's environment
+ setup scripts for login shells (e.g. .bash_profile) and
+ your privately installed GIT may not be found on the system
+ default $PATH. Another workaround suggested is to set
+ up your $PATH in ".bashrc", but this flag is for people
+ who do not want to pay the overhead for non-interactive
+ shells by having a lean .bashrc file (they set most of
+ the things up in .bash_profile).
+
+[<host>:]<directory::
+ The (possibly remote) repository to clone from.
+
+<heads>...::
+ The heads to update. This is relative to $GIT_DIR
+ (e.g. "HEAD", "refs/heads/master"). When unspecified,
+ all heads are updated to match the remote repository.
+
+
+Author
+------
+Written by Linus Torvalds <torvalds@osdl.org>
+
+Documentation
+--------------
+Documentation by Junio C Hamano.
+
+
+GIT
+---
+Part of the link:git.html[git] suite
+
diff --git a/Documentation/git-clone-script.txt b/Documentation/git-clone-script.txt
--- /dev/null
@@ -0,0 +1,60 @@
+git-clone-script(1)
+===================
+v0.1, July 2005
+
+NAME
+----
+git-clone-script - Clones a repository.
+
+
+SYNOPSIS
+--------
+'git clone' [-l] [-u <upload-pack>] [-q] <repository> <directory>
+
+DESCRIPTION
+-----------
+Clones a repository into a newly created directory.
+
+OPTIONS
+-------
+-l::
+ When the repository to clone from is on a local machine,
+ this flag bypasses normal "git aware" transport
+ mechanism and clones the repository by making a copy of
+ HEAD and everything under objects and refs directories.
+ The files under .git/objects/ directory are hardlinked
+ to save space when possible.
+
+-q::
+ Operate quietly. This flag is passed to "rsync" and
+ "git-clone-pack" commands when given.
+
+-u <upload-pack>::
+ When given, and the repository to clone from is handled
+ by 'git-clone-pack', '--exec=<upload-pack>' is passed to
+ the command to specify non-default path for the command
+ run on the other end.
+
+<repository>::
+ The (possibly remote) repository to clone from. It can
+ be an "rsync://host/dir" URL, an "http://host/dir" URL,
+ or [<host>:]/dir notation that is used by 'git-clone-pack'.
+ Currently http transport is not supported.
+
+<directory>::
+ The name of a new directory to be cloned into. It is an
+ error to specify an existing directory.
+
+Author
+------
+Written by Linus Torvalds <torvalds@osdl.org>
+
+Documentation
+--------------
+Documentation by Junio C Hamano.
+
+
+GIT
+---
+Part of the link:git.html[git] suite
+
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 06205024b2628d13cf9ba8297d15428b94ca4c1d..cff5f795bca6620e498b853964e864325fbf4b2b 100644 (file)
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
link:git-convert-cache.html[git-convert-cache]::
Converts old-style GIT repository
+link:git-clone-script.html[git-clone-script]::
+ Clones a repository into the current repository (user interface)
+
+link:git-clone-pack.html[git-clone-pack]::
+ Clones a repository into the current repository (engine
+ for ssh and local transport)
+
link:git-http-pull.html[git-http-pull]::
Downloads a remote GIT repository via HTTP
diff --git a/clone-pack.c b/clone-pack.c
index 252fb80efd55a4cc4fa679411c4570093500f4ad..064ec6964d45b365bdfdb48cbbc975e2c0864762 100644 (file)
--- a/clone-pack.c
+++ b/clone-pack.c
#include <sys/wait.h>
static int quiet;
-static const char clone_pack_usage[] = "git-clone-pack [host:]directory [heads]*";
+static const char clone_pack_usage[] = "git-clone-pack [-q] [--exec=<git-upload-pack>] [<host>:]<directory> [<heads>]*";
static const char *exec = "git-upload-pack";
struct ref {
quiet = 1;
continue;
}
+ if (!strncmp("--exec=", arg, 7)) {
+ exec = arg + 7;
+ continue;
+ }
usage(clone_pack_usage);
}
dest = arg;
diff --git a/git-clone-script b/git-clone-script
index f92851ca4bd9fc662f8d0dda6c626ff4a6169f19..88e2c1f70686d35e6f2d9070931e40ff3ae7e1a5 100755 (executable)
--- a/git-clone-script
+++ b/git-clone-script
# Clone a repository into a different directory that does not yet exist.
usage() {
- echo >&2 "* git clone [-l] <repo> <dir>"
+ echo >&2 "* git clone [-l] [-q] [-u <upload-pack>] <repo> <dir>"
exit 1
}
quiet=
use_local=no
+upload_pack=
while
case "$#,$1" in
0,*) break ;;
*,-l|*,--l|*,--lo|*,--loc|*,--loca|*,--local) use_local=yes ;;
*,-q|*,--quiet) quiet=-q ;;
+ 1,-u|*,--upload-pack) usage ;;
+ *,-u|*,--upload-pack)
+ shift
+ upload_pack="--exec=$2" ;;
*,-*) usage ;;
*) break ;;
esac
exit 1
;;
*)
- cd "$D" && git-clone-pack $quiet "$repo"
+ cd "$D" && case "$upload_pack" in
+ '') git-clone-pack $quiet "$repo" ;;
+ *) git-clone-pack $quiet "$upload_pack" "$repo" ;;
+ esac
;;
esac