git-clone: Keep remote names when cloning unless explicitly told not to.

With this patch the following commands all clone into the local directory
"repo". If repo exists, it will still barf.

	git-clone git://host.xz/repo.git
	git-clone /path/to/repo/.git
	git-clone host.xz:repo.git

I ended up doing the same source-to-target sed'ing for all our company
projects, so it was easier to add it directly to git-clone.

Signed-off-by: Andreas Ericsson <ae@op5.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Andreas Ericsson 2005-11-10 12:58:08 +01:00 committed by Junio C Hamano
parent 0867b0125a
commit 0879aa2870
2 changed files with 9 additions and 5 deletions

View File

@ -8,7 +8,7 @@ git-clone - Clones a repository.
SYNOPSIS SYNOPSIS
-------- --------
'git-clone' [-l [-s]] [-q] [-n] [-u <upload-pack>] <repository> <directory> 'git-clone' [-l [-s]] [-q] [-n] [-u <upload-pack>] <repository> [<directory>]
DESCRIPTION DESCRIPTION
----------- -----------
@ -68,9 +68,11 @@ OPTIONS
be any URL git-fetch supports. be any URL git-fetch supports.
<directory>:: <directory>::
The name of a new directory to be cloned into. It is an The name of a new directory to clone into. The "humanish"
error to specify an existing directory. part of the source repository is used if no directory is
explicitly given ("repo" for "/path/to/repo.git" and "foo"
for "host.xz:foo/.git"). Cloning into an existing directory
is not allowed.
Author Author
------ ------
@ -78,7 +80,7 @@ Written by Linus Torvalds <torvalds@osdl.org>
Documentation Documentation
-------------- --------------
Documentation by Junio C Hamano. Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
GIT GIT

View File

@ -96,6 +96,8 @@ if base=$(get_repo_base "$repo"); then
fi fi
dir="$2" dir="$2"
# Try using "humanish" part of source repo if user didn't specify one
[ -z "$dir" ] && dir=$(echo "$repo" | sed -e 's|/$||' -e 's|:*/*\.git$||' -e 's|.*/||g')
mkdir "$dir" && mkdir "$dir" &&
D=$( D=$(
(cd "$dir" && git-init-db && pwd) (cd "$dir" && git-init-db && pwd)