Browse Source

Make "git clone" a lot more user-friendly

This silently adds the ".git" directory component if needed, so you
don't need to state it explicitly for the source.  Also, it turns the
source into an absolute pathname when local, so that you can use
relative pathnames without losing sight of the source when we cd into
the destination.
maint
Linus Torvalds 20 years ago
parent
commit
ba375acff7
  1. 16
      git-clone-script

16
git-clone-script

@ -10,6 +10,10 @@ usage() { @@ -10,6 +10,10 @@ usage() {
exit 1
}

get_repo_base() {
(cd "$1" && (cd .git ; pwd)) 2> /dev/null
}

use_local=no
while
case "$#,$1" in
@ -22,7 +26,15 @@ do @@ -22,7 +26,15 @@ do
shift
done

# Turn the source into an absolute path if
# it is local
repo="$1"
local=no
if base=$(get_repo_base "$repo"); then
repo="$base"
local=yes
fi

dir="$2"
mkdir "$dir" &&
D=$(
@ -31,8 +43,8 @@ D=$( @@ -31,8 +43,8 @@ D=$(
test -d "$D" || usage

# We do local magic only when the user tells us to.
case "$use_local" in
yes)
case "$local,$use_local" in
yes,yes)
( cd "$repo/objects" ) || {
repo="$repo/.git"
( cd "$repo/objects" ) || {

Loading…
Cancel
Save