parent
abd0d119ac
commit
c3662082e4
|
@ -1 +1 @@
|
||||||
007003000
|
007004000
|
||||||
|
|
39
lib/ulib/vcs
39
lib/ulib/vcs
|
@ -530,6 +530,45 @@ function git_ensure_cleancheckout() {
|
||||||
check_cleancheckout || die "Vous avez des modifications locales. Enregistrez ces modifications avant de continuer"
|
check_cleancheckout || die "Vous avez des modifications locales. Enregistrez ces modifications avant de continuer"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# fonctions pour git annex
|
||||||
|
function git_annex_initial() {
|
||||||
|
# sur le dépôt $1 fraichement cloné, vérifier s'il faut faire git annex
|
||||||
|
# init. Si oui, l'initialiser avec le nom d'hôte, et récupérer tous les
|
||||||
|
# fichiers annexés
|
||||||
|
# retourner 1 si une erreur s'est produite
|
||||||
|
local repodir="${1:-.}"
|
||||||
|
[ -d "$repodir" ] || return 1
|
||||||
|
repodir="$(abspath "$repodir")"
|
||||||
|
|
||||||
|
local GIT_DIR GIT_WORK_TREE
|
||||||
|
[ "$(cd "$repodir"; git rev-parse --is-bare-repository)" == false ] || return 0
|
||||||
|
[ -n "$(GIT_DIR="$repodir/.git" git config annex.uuid)" ] && return 0
|
||||||
|
|
||||||
|
# ici, on sait que git annex n'a pas encore été configuré
|
||||||
|
# vérifier s'il existe des fichiers annexés
|
||||||
|
local -a links
|
||||||
|
array_from_lines links "$(find "$repodir" -type l)"
|
||||||
|
local link hasannex=
|
||||||
|
for link in "${links[@]}"; do
|
||||||
|
link="$(readlink "$link")"
|
||||||
|
if [ "${link#.git/annex/}" != "$link" ]; then
|
||||||
|
hasannex=1
|
||||||
|
break
|
||||||
|
elif [[ "$link" == "*/.git/annex/*" ]]; then
|
||||||
|
hasannex=1
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$hasannex" ]; then
|
||||||
|
(cd "$repodir"
|
||||||
|
git annex init "$MYHOSTNAME" &&
|
||||||
|
git annex get &&
|
||||||
|
git annex sync
|
||||||
|
) || return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Subversion
|
# Subversion
|
||||||
|
|
||||||
|
|
38
uproject
38
uproject
|
@ -52,6 +52,13 @@ COMMANDS
|
||||||
Afficher les différences depuis la révision REV.
|
Afficher les différences depuis la révision REV.
|
||||||
-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]
|
||||||
|
Cloner un dépôt distant. 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]
|
||||||
|
Créer un dépôt distant sur gitolite, puis le cloner
|
||||||
|
|
||||||
annex [args]
|
annex [args]
|
||||||
Lancer git annex avec les arguments spécifiés.
|
Lancer git annex avec les arguments spécifiés.
|
||||||
xadd
|
xadd
|
||||||
|
@ -66,9 +73,10 @@ COMMANDS
|
||||||
xget
|
xget
|
||||||
Comme ci-dessus, mais si la commande s'exécute sans erreur, lancer
|
Comme ci-dessus, mais si la commande s'exécute sans erreur, lancer
|
||||||
aussi 'git annex sync'
|
aussi 'git annex sync'
|
||||||
|
xinitial
|
||||||
crone git@host:path/to/repo
|
Sur un dépôt fraichement cloné, initialiser le dépôt avec 'annex init'
|
||||||
Créer puis cloner un dépôt distant sur gitolite
|
s'il contient des fichiers annexés. Récupérer aussi ces fichiers avec
|
||||||
|
'annex get'
|
||||||
|
|
||||||
printml [-t TYPE]
|
printml [-t TYPE]
|
||||||
Afficher le modeline pour un fichier du type spécifié
|
Afficher le modeline pour un fichier du type spécifié
|
||||||
|
@ -94,6 +102,8 @@ SCRIPT_ALIASES=(
|
||||||
pxx:annex
|
pxx:annex
|
||||||
pxa:xadd pxu:xunlock pxc:xcopy pxd:xdrop pxm:xmove
|
pxa:xadd pxu:xunlock pxc:xcopy pxd:xdrop pxm:xmove
|
||||||
pxg:xget pxs:xsync pxw:xwhereis
|
pxg:xget pxs:xsync pxw:xwhereis
|
||||||
|
pxinitial:xinitial
|
||||||
|
pclone:clone
|
||||||
pcrone:crone
|
pcrone:crone
|
||||||
pnew:new
|
pnew:new
|
||||||
pgr:grep
|
pgr:grep
|
||||||
|
@ -125,7 +135,7 @@ CMD_ALIASES=(
|
||||||
DEFAULT_CMD=status
|
DEFAULT_CMD=status
|
||||||
PY_CMDS=(new)
|
PY_CMDS=(new)
|
||||||
VCS_CMDS=(getvcs getroot getrepos geturl vcs add remove copy move mkdir commit status update push diff tag)
|
VCS_CMDS=(getvcs getroot getrepos geturl vcs add remove copy move mkdir commit status update push diff tag)
|
||||||
GITANNEX_CMDS=(annex xadd xunlock xcopy xdrop xmove xget xsync xwhereis)
|
GITANNEX_CMDS=(annex xadd xunlock xcopy xdrop xmove xget xsync xwhereis xinitial)
|
||||||
ML_CMDS=(printml addml)
|
ML_CMDS=(printml addml)
|
||||||
|
|
||||||
if [ "$#" -eq 1 -a "$1" == --nutools-makelinks ]; then
|
if [ "$#" -eq 1 -a "$1" == --nutools-makelinks ]; then
|
||||||
|
@ -198,12 +208,29 @@ elif array_contains GITANNEX_CMDS "$CMD"; then
|
||||||
case "$CMD" in
|
case "$CMD" in
|
||||||
annex) git annex "$@";;
|
annex) git annex "$@";;
|
||||||
xcopy|xmove|xget) git annex "${CMD#x}" "$@" && git annex sync;;
|
xcopy|xmove|xget) git annex "${CMD#x}" "$@" && git annex sync;;
|
||||||
|
xinitial) git_annex_initial "$@";;
|
||||||
*) git annex "${CMD#x}" "$@";;
|
*) git annex "${CMD#x}" "$@";;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
elif [ "$CMD" == clone ]; then
|
||||||
|
repourl="${1%.git}"
|
||||||
|
[ -n "$repourl" ] || die "Vous devez spécifier l'url du dépôt git"
|
||||||
|
|
||||||
|
destdir="$2"
|
||||||
|
[ -n "$destdir" ] || setx destdir=basename -- "$destdir"
|
||||||
|
[ -d "$destdir" ] && die "$(ppath "$destdir"): répertoire existant"
|
||||||
|
|
||||||
|
git clone "$repourl" "$destdir" || die
|
||||||
|
git_annex_initial "$destdir" || die
|
||||||
|
|
||||||
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"
|
||||||
|
|
||||||
|
destdir="$2"
|
||||||
|
[ -n "$destdir" ] || setx destdir=basename -- "$destdir"
|
||||||
|
[ -d "$destdir" ] && die "$(ppath "$destdir"): répertoire existant"
|
||||||
|
|
||||||
splitfsep "$repourl" : userhost path
|
splitfsep "$repourl" : userhost path
|
||||||
splituserhost "$userhost" user host
|
splituserhost "$userhost" user host
|
||||||
[ -n "$user" ] || user=git
|
[ -n "$user" ] || user=git
|
||||||
|
@ -212,7 +239,8 @@ elif [ "$CMD" == crone ]; then
|
||||||
[ -n "$path" ] || die "Vous devez spécifier le chemin du dépôt git"
|
[ -n "$path" ] || die "Vous devez spécifier le chemin du dépôt git"
|
||||||
|
|
||||||
${GIT_SSH:-ssh} "$userhost" create "$path" || die
|
${GIT_SSH:-ssh} "$userhost" create "$path" || die
|
||||||
git clone "$userhost:$path"
|
git clone "$userhost:$path" "$destdir" || die
|
||||||
|
git_annex_initial "$destdir" || die
|
||||||
|
|
||||||
elif array_contains PY_CMDS "$CMD"; then
|
elif array_contains PY_CMDS "$CMD"; then
|
||||||
exec "$scriptdir/lib/pywrapper" uproject.py "$CMD" "$@"
|
exec "$scriptdir/lib/pywrapper" uproject.py "$CMD" "$@"
|
||||||
|
|
Loading…
Reference in New Issue