On Wed, Feb 27, 2008 at 11:44 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Santi Béjar <sbejar@xxxxxxxxx> writes: > > > Signed-off-by: Santi Béjar <sbejar@xxxxxxxxx> > > > diff --git a/git-clone.sh b/git-clone.sh > > index 0d686c3..2efb947 100755 > > --- a/git-clone.sh > > +++ b/git-clone.sh > > @@ -210,11 +210,14 @@ if base=$(get_repo_base "$repo"); then > > then > > local=yes > > fi > > +elif [ -f "$repo" ] ; then > > + case "$repo" in /*);; *) repo="$PWD/$repo" ; esac > > fi > > > > 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') > > +[ -f "$dir" ] && dir=$(expr "$repo" : '.*/\([^/]*\)\.[^/]*') > > [ -e "$dir" ] && die "destination directory '$dir' already exists." > > [ yes = "$bare" ] && unset GIT_WORK_TREE > > [ -n "$GIT_WORK_TREE" ] && [ -e "$GIT_WORK_TREE" ] && > > What is this [ -f "$dir" ] line doing? The purpose of these > lines is: > > - The user (might have) said "clone to $2"; > > - If the user didn't, then set dir to humanish part; > > - If that exists, we barf. > > I do not see any valid reason for an additional logic in this > sequence when adding a new clone _source_ type. > > The check to see if "$dir" _exists_ is even worse. If the user > said "clone _to_ this", then we would not have invented $dir > based on the $repo (which is what the user said "clone _from_") > but used whatever name the user has given us. The existing > check to barf "Hey, that explicit location you told me to clone > to is WRONG!!!" should not be broken. > Oops, I did not thought about that possibility. The check was to be able to clone a bundle that was in the local directory. So: $ git clone git.bundle clones git.bundle to the directory git. Maybe we can add an && in the previous line, or we can say simply that to clone a bundle in the same directory you have to specify explicitly where to clone. In another patch we could add an "official" extension to the bundles (the same way as with the repositories "*.git") as project.bdl or project.bundle and just remove this extension. Santi - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html