git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] git-clone: Keep remote names when cloning unless explicitly told not to.
@ 2005-11-10 11:58 Andreas Ericsson
  2005-11-10 17:15 ` Junio C Hamano
  0 siblings, 1 reply; 3+ messages in thread
From: Andreas Ericsson @ 2005-11-10 11:58 UTC (permalink / raw)
  To: git


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

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] git-clone: Keep remote names when cloning unless explicitly told not to.
  2005-11-10 11:58 [PATCH 1/2] git-clone: Keep remote names when cloning unless explicitly told not to Andreas Ericsson
@ 2005-11-10 17:15 ` Junio C Hamano
  2005-11-10 17:49   ` Andreas Ericsson
  0 siblings, 1 reply; 3+ messages in thread
From: Junio C Hamano @ 2005-11-10 17:15 UTC (permalink / raw)
  To: Andreas Ericsson; +Cc: git

exon@op5.se (Andreas Ericsson) writes:

> +	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.
>  
> +# Try using "humanish" part of source repo if user didn't specify one
> +[ -z "$dir" ] && dir=$(echo "$repo" | sed -e 's#/*\.git$##' -e 's#.*[/:]##')

Micronit; if I version control contents of my home directory on
host.xz [*1*] under git, I would say host.xz:.git/ when cloning
it, wouldn't I?

Maybe we would want to check if the resulting $dir makes sense
after this step.

[Footnote]

*1* ... I wouldn't personally, but some people are known to do
that.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] git-clone: Keep remote names when cloning unless explicitly told not to.
  2005-11-10 17:15 ` Junio C Hamano
@ 2005-11-10 17:49   ` Andreas Ericsson
  0 siblings, 0 replies; 3+ messages in thread
From: Andreas Ericsson @ 2005-11-10 17:49 UTC (permalink / raw)
  Cc: git

Junio C Hamano wrote:
> exon@op5.se (Andreas Ericsson) writes:
> 
>>+# Try using "humanish" part of source repo if user didn't specify one
>>+[ -z "$dir" ] && dir=$(echo "$repo" | sed -e 's#/*\.git$##' -e 's#.*[/:]##')
> 
> 
> Micronit; if I version control contents of my home directory on
> host.xz [*1*] under git, I would say host.xz:.git/ when cloning
> it, wouldn't I?
> 

Gah. Does anyone do that?

Anyways,
	sed -e 's#:*/*\.git$##' -e 's#.*[/:]##'
would turn that into "host.xz", so that should work real nice like, I 
suppose.

> Maybe we would want to check if the resulting $dir makes sense
> after this step.
> 

Perhaps, but this would lead to mkdir complaining about the empty 
directory name, so it's no worse than the current code. The sane user 
then looks at the help output and determines that he needs to specify a 
target directory.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2005-11-10 17:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-11-10 11:58 [PATCH 1/2] git-clone: Keep remote names when cloning unless explicitly told not to Andreas Ericsson
2005-11-10 17:15 ` Junio C Hamano
2005-11-10 17:49   ` Andreas Ericsson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).