[PATCH] clone-pack and clone-script: documentation and add a missing parameter.
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>
This commit is contained in:

committed by
Linus Torvalds

parent
d46ad9c989
commit
6ec311da34
60
Documentation/git-clone-pack.txt
Normal file
60
Documentation/git-clone-pack.txt
Normal file
@ -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
|
||||||
|
|
60
Documentation/git-clone-script.txt
Normal file
60
Documentation/git-clone-script.txt
Normal file
@ -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
|
||||||
|
|
@ -127,6 +127,13 @@ link:git-apply-patch-script.html[git-apply-patch-script]::
|
|||||||
link:git-convert-cache.html[git-convert-cache]::
|
link:git-convert-cache.html[git-convert-cache]::
|
||||||
Converts old-style GIT repository
|
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]::
|
link:git-http-pull.html[git-http-pull]::
|
||||||
Downloads a remote GIT repository via HTTP
|
Downloads a remote GIT repository via HTTP
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
|
|
||||||
static int quiet;
|
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";
|
static const char *exec = "git-upload-pack";
|
||||||
|
|
||||||
struct ref {
|
struct ref {
|
||||||
@ -196,6 +196,10 @@ int main(int argc, char **argv)
|
|||||||
quiet = 1;
|
quiet = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (!strncmp("--exec=", arg, 7)) {
|
||||||
|
exec = arg + 7;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
usage(clone_pack_usage);
|
usage(clone_pack_usage);
|
||||||
}
|
}
|
||||||
dest = arg;
|
dest = arg;
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
# Clone a repository into a different directory that does not yet exist.
|
# Clone a repository into a different directory that does not yet exist.
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo >&2 "* git clone [-l] <repo> <dir>"
|
echo >&2 "* git clone [-l] [-q] [-u <upload-pack>] <repo> <dir>"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -16,11 +16,16 @@ get_repo_base() {
|
|||||||
|
|
||||||
quiet=
|
quiet=
|
||||||
use_local=no
|
use_local=no
|
||||||
|
upload_pack=
|
||||||
while
|
while
|
||||||
case "$#,$1" in
|
case "$#,$1" in
|
||||||
0,*) break ;;
|
0,*) break ;;
|
||||||
*,-l|*,--l|*,--lo|*,--loc|*,--loca|*,--local) use_local=yes ;;
|
*,-l|*,--l|*,--lo|*,--loc|*,--loca|*,--local) use_local=yes ;;
|
||||||
*,-q|*,--quiet) quiet=-q ;;
|
*,-q|*,--quiet) quiet=-q ;;
|
||||||
|
1,-u|*,--upload-pack) usage ;;
|
||||||
|
*,-u|*,--upload-pack)
|
||||||
|
shift
|
||||||
|
upload_pack="--exec=$2" ;;
|
||||||
*,-*) usage ;;
|
*,-*) usage ;;
|
||||||
*) break ;;
|
*) break ;;
|
||||||
esac
|
esac
|
||||||
@ -90,6 +95,9 @@ http://*)
|
|||||||
exit 1
|
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
|
esac
|
||||||
|
Reference in New Issue
Block a user