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