* [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).