pcrone: support des dépôt en http
This commit is contained in:
parent
67f29ddea4
commit
286d1fe959
41
uproject
41
uproject
|
@ -57,11 +57,13 @@ COMMANDS
|
|||
-R Afficher les modifications effectuées depuis la dernière release.
|
||||
|
||||
clone git@host:path/to/repo [destdir]
|
||||
clone http://host/gituser/path/to/repo [destdir]
|
||||
Cloner un dépôt distant. Basculer sur la branche develop si elle existe.
|
||||
Initialiser git annex si le dépôt contient des fichiers annexés.
|
||||
Récupérer aussi ces fichiers avec 'git annex get'
|
||||
|
||||
crone git@host:path/to/repo [destdir]
|
||||
crone http://host/gituser/path/to/repo [destdir]
|
||||
Créer un dépôt distant sur gitolite, puis le cloner
|
||||
|
||||
develop
|
||||
|
@ -290,7 +292,24 @@ elif [ "$CMD" == clone ]; then
|
|||
elif [ "$CMD" == crone ]; then
|
||||
repourl="${1%.git}"
|
||||
[ -n "$repourl" ] || die "Vous devez spécifier l'url du dépôt git"
|
||||
if [ "${repourl#http://}" != "$repourl" -o "${repourl#https://}" != "$repourl" ]; then
|
||||
# accès par http
|
||||
mode=http
|
||||
splitfsep "$repourl" :// scheme hostuserpath
|
||||
splitfsep "$hostuserpath" / host userpath
|
||||
splitfsep "$userpath" / user path
|
||||
[ -n "$host" -a -n "$user" ] || die "Vous devez spécifier l'hôte e.g http://host/git/repo"
|
||||
hostuser="$scheme://$host/$user"
|
||||
else
|
||||
# accès par ssh
|
||||
mode=ssh
|
||||
splitfsep "$repourl" : userhost path
|
||||
splituserhost "$userhost" user host
|
||||
[ -n "$user" ] || user=git
|
||||
[ -n "$host" ] || die "Vous devez spécifier l'hôte"
|
||||
userhost="$user@$host"
|
||||
fi
|
||||
[ -n "$path" ] || die "Vous devez spécifier le chemin du dépôt git"
|
||||
|
||||
destdir="$2"
|
||||
if [ -z "$destdir" ]; then
|
||||
|
@ -303,12 +322,19 @@ elif [ "$CMD" == crone ]; then
|
|||
ac_set_tmpdir tmpdestdir
|
||||
fi
|
||||
|
||||
splituserhost "$userhost" user host
|
||||
[ -n "$user" ] || user=git
|
||||
[ -n "$host" ] || die "Vous devez spécifier l'hôte"
|
||||
userhost="$user@$host"
|
||||
[ -n "$path" ] || die "Vous devez spécifier le chemin du dépôt git"
|
||||
|
||||
if [ "$mode" == http ]; then
|
||||
setx result=curl -fs "$hostuser/create?$path" || die
|
||||
echo "$result"
|
||||
[[ "$result" == FATAL:* ]] && die
|
||||
if [ -n "$tmpdestdir" ]; then
|
||||
setxx destname=abspath "$destdir" // basename
|
||||
git clone "$hostuser/$path" "$tmpdestdir/$destname" || die
|
||||
mv "$tmpdestdir/$destname/.git" "$destdir" || die
|
||||
ac_clean "$tmpdestdir"
|
||||
else
|
||||
git clone "$hostuser/$path" "$destdir" || die
|
||||
fi
|
||||
elif [ "$mode" == ssh ]; then
|
||||
git_annex_use_ssh_wrapper
|
||||
ssh "$userhost" create "$path" || die
|
||||
if [ -n "$tmpdestdir" ]; then
|
||||
|
@ -319,6 +345,9 @@ elif [ "$CMD" == crone ]; then
|
|||
else
|
||||
git clone "$userhost:$path" "$destdir" || die
|
||||
fi
|
||||
else
|
||||
die "bug: mode non prévu"
|
||||
fi
|
||||
git_annex_initial "$destdir" || die
|
||||
|
||||
elif [ "$CMD" == xconfig-export ]; then
|
||||
|
|
Loading…
Reference in New Issue