git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/2] git-clone: Keep remote names when cloning unless explicitly told not to.

From
Andreas Ericsson <exon@op5.se>
Date
Nov 10, 2005, 11:58 UTC
Message-ID
<20051110115808.418125BF88@nox.op5.se>

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>
---
 Documentation/git-clone.txt |   12 +++++++-----
 git-clone.sh                |    2 ++
 2 files changed, 9 insertions(+), 5 deletions(-)

applies-to: 6466c53ae80cddbb581c5fdb2332f9321fade867 fe6fb0e830253803798a2b70222d72e4107db1c1

diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt
index fefd298..83f58ae 100644
--- a/Documentation/git-clone.txt
+++ b/Documentation/git-clone.txt
@@ -8,7 +8,7 @@ git-clone - Clones a repository.
 
 SYNOPSIS
 --------
-'git-clone' [-l [-s]] [-q] [-n] [-u <upload-pack>] <repository> <directory>
+'git-clone' [-l [-s]] [-q] [-n] [-u <upload-pack>] <repository> [<directory>]
 
 DESCRIPTION
 -----------
@@ -68,9 +68,11 @@ OPTIONS
 	be any URL git-fetch supports.
 
 <directory>::
-	The name of a new directory to be cloned into.  It is an
-	error to specify an existing directory.
-
+	The name of a new directory to clone into.  The	"humanish"
+	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
 ------
@@ -78,7 +80,7 @@ Written by Linus Torvalds <torvalds@osdl
 
 Documentation
 --------------
-Documentation by Junio C Hamano.
+Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
 
 
 GIT
diff --git a/git-clone.sh b/git-clone.sh
index 4fdd652..70cf7a2 100755
--- a/git-clone.sh
+++ b/git-clone.sh
@@ -96,6 +96,8 @@ if base=$(get_repo_base "$repo"); then
 fi
 
 dir="$2"
+# Try using "humanish" part of source repo if user didn't specify one
+[ -z "$dir" ] && dir=$(echo "$repo" | sed -e 's#/*\.git$##' -e 's#.*[/:]##')
 mkdir "$dir" &&
 D=$(
 	(cd "$dir" && git-init-db && pwd)
---
0.99.9.GIT
Next: Junio C Hamano
Message 1 of 3 in “git-clone: Keep remote names when cloning unless explicitly told not to.”
  1. 1/2 git-clone: Keep remote names when cloning unless explicitly told not to.Andreas Ericsson, Nov 10, 2005
  2. Junio C HamanoNov 10, 2005
  3. Andreas EricssonNov 10, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.