support du mode offline

This commit is contained in:
Jephté Clain 2015-03-09 16:06:05 +04:00
parent 49ff5cb4b4
commit 5e15a74cc0
1 changed files with 23 additions and 4 deletions

23
pdev
View File

@ -28,6 +28,13 @@ OPTIONS
est modifié avant de lancer les commandes git. est modifié avant de lancer les commandes git.
-O, --origin ORIGIN -O, --origin ORIGIN
Spécifier le nom de l'origine. Par défaut, utiliser 'origin' Spécifier le nom de l'origine. Par défaut, utiliser 'origin'
-o, --offline
En cas de création d'une branche, ne pas pousser vers l'origine et ne
pas tenter le cas échéant de traquer la branche dans l'origine. Cette
option est automatiquement activée si la variable UTOOLS_VCS_OFFLINE est
définie.
--online
Annuler l'effet de la variable UTOOLS_VCS_OFFLINE: forcer le mode online
-m, --merge -m, --merge
Si la branche actuelle est une feature branch, la merger dans develop Si la branche actuelle est une feature branch, la merger dans develop
puis la supprimer. Puis basculer sur la branche develop. puis la supprimer. Puis basculer sur la branche develop.
@ -42,6 +49,7 @@ OPTIONS
develop. S'il s'agit de la branche develop, elle est comparée à master." develop. S'il s'agit de la branche develop, elle est comparée à master."
} }
export UTOOLS_VCS_OFFLINE
projdir= projdir=
origin=origin origin=origin
action=branch action=branch
@ -51,6 +59,8 @@ parse_opts "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \ --help '$exit_with display_help' \
-C:,--projdir: projdir= \ -C:,--projdir: projdir= \
-O:,--origin: origin= \ -O:,--origin: origin= \
-o,--offline UTOOLS_VCS_OFFLINE=1 \
--online UTOOLS_VCS_OFFLINE= \
-m,--merge action=merge \ -m,--merge action=merge \
-l,--log '$action=diff; log=1' \ -l,--log '$action=diff; log=1' \
-d,--diff '$action=diff; diff=1' \ -d,--diff '$action=diff; diff=1' \
@ -91,7 +101,9 @@ if [ "$action" == branch ]; then
# On est peut-être déjà sur la bonne branche # On est peut-être déjà sur la bonne branche
if git_is_branch "$feature"; then if git_is_branch "$feature"; then
if [ -z "$UTOOLS_VCS_OFFLINE" ]; then
git_track_branch "$feature" "$origin" git_track_branch "$feature" "$origin"
fi
exit 0 exit 0
fi fi
@ -149,9 +161,16 @@ dans la branche de destination ${COULEUR_BLEUE}develop${COULEUR_NORMALE}"
estepi "Suppression de la branche locale" estepi "Suppression de la branche locale"
git branch -d "$feature" git branch -d "$feature"
if git_have_remote origin; then if git_have_remote "$origin"; then
if [ -z "$UTOOLS_VCS_OFFLINE" ]; then
estepi "Suppression de la branche distante" estepi "Suppression de la branche distante"
git push origin ":$feature" git push "$origin" ":$feature"
else
eimportant "\
La branche $feature n'a plus lieu d'être, mais la configuration actuelle interdit de la supprimer dans le dépôt distant.
Veuillez le faire manuellement avec la commande suivante:
$(quoted_args git push "$origin" ":$feature")"
fi
fi fi
elif [ "$action" == diff ]; then elif [ "$action" == diff ]; then