зеркало из https://github.com/microsoft/git.git
[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:
Родитель
d46ad9c989
Коммит
6ec311da34
|
@ -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
|
||||
|
|
@ -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]::
|
||||
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
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#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 {
|
||||
|
@ -196,6 +196,10 @@ int main(int argc, char **argv)
|
|||
quiet = 1;
|
||||
continue;
|
||||
}
|
||||
if (!strncmp("--exec=", arg, 7)) {
|
||||
exec = arg + 7;
|
||||
continue;
|
||||
}
|
||||
usage(clone_pack_usage);
|
||||
}
|
||||
dest = arg;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
# 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
|
||||
}
|
||||
|
||||
|
@ -16,11 +16,16 @@ get_repo_base() {
|
|||
|
||||
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
|
||||
|
@ -90,6 +95,9 @@ http://*)
|
|||
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
|
||||
|
|
Загрузка…
Ссылка в новой задаче