Re: [PATCHv3] clone: support cloning full bundles
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:18
Santi Béjar [off-list ref] writes:
quoted hunk ↗ jump to hunk
diff --git a/git-clone.sh b/git-clone.sh index 0d686c3..0580b5a 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') +[ -z "$dir" ] && dir=$(echo "$repo" | sed -e 's|/$||' -e 's|:*/*\.git$||' -e 's|.*[/:]||g') && +[ -f "$repo" ] && dir=$(echo "$repo" | sed -e 's|/*\.bundle$||' -e 's|.*/||g') [ -e "$dir" ] && die "destination directory '$dir' already exists." [ yes = "$bare" ] && unset GIT_WORK_TREE [ -n "$GIT_WORK_TREE" ] && [ -e "$GIT_WORK_TREE" ] &&
This sequence was terse, to the point and very readable when the
logic was simpler, but now it is getting out of hand. I think
it is a time for rewriting to something more verbose, like...
# Decide the directory name of the new repository
if test -n "$2"
then
dir="$2"
else
# Derive one from the repository name
if test -f "$repo"
then
# Cloning from a bundle
dir=... humanish ...
else
dir=... humanish ...
fi
fi