l'option -c ne fait que le basculement ou la création. Le choix de la version se fera avec -u

This commit is contained in:
Jephte CLAIN 2015-03-13 07:11:05 +04:00
parent c5ba03b669
commit bbbe6c4600
1 changed files with 25 additions and 15 deletions

View File

@ -13,15 +13,14 @@ function display_help() {
uecho "$scriptname: basculer sur une branche de release uecho "$scriptname: basculer sur une branche de release
USAGE USAGE
$scriptname -c [RELEASE [SOURCE]]
$scriptname -u [SOURCE] $scriptname -u [SOURCE]
$scriptname -c [RELEASE [SOURCE]]
$scriptname -m|-l|-d [RELEASE] $scriptname -m|-l|-d [RELEASE]
- Vérifier s'il n'y a pas de modifications locales. Sinon, proposer de faire un - Vérifier s'il n'y a pas de modifications locales. Sinon, proposer de faire un
commit ou un stash. commit ou un stash.
- Avec l'option -c, s'il existe une branche de release, proposer de basculer - Avec l'option -c, s'il existe une branche de release, proposer de basculer
vers elle ou sur la branche master. Sinon, proposer un choix de branche de vers elle ou sur la branche master. Sinon, basculer sur la branche master.
release à créer.
- Avec l'option -u, proposer ou fixer une branche de release à créer. Si elle - Avec l'option -u, proposer ou fixer une branche de release à créer. Si elle
existe déjà, basculer vers elle. Sinon, la créer en la basant sur SOURCE, qui existe déjà, basculer vers elle. Sinon, la créer en la basant sur SOURCE, qui
vaut par défaut develop vaut par défaut develop
@ -44,7 +43,7 @@ OPTIONS
-c, --checkout -c, --checkout
Basculer vers une branche de release existante. C'est l'option par Basculer vers une branche de release existante. C'est l'option par
défaut. Si aucune branche de release n'existe, assumer -u --menu défaut. Si aucune branche de release n'existe, basculer vers master
-u, --update -u, --update
Préparer une nouvelle release. Utiliser une des options -x, -z ou -p Préparer une nouvelle release. Utiliser une des options -x, -z ou -p
pour spécifier le type de release à préparer. Si la branche qui serait pour spécifier le type de release à préparer. Si la branche qui serait
@ -74,6 +73,9 @@ OPTIONS
Si la branche actuelle est une branche de release, ou s'il existe une Si la branche actuelle est une branche de release, ou s'il existe une
branche de release, la merger dans master, puis dans develop, puis la branche de release, la merger dans master, puis dans develop, puis la
supprimer. Puis basculer sur la branche master. supprimer. Puis basculer sur la branche master.
S'il n'existe pas de branche de release, proposer de fusionner les
modifications de la branche develop dans la branche master, sans
préparer de branche de release au préalable.
-l, --log -l, --log
Afficher les modifications actuellement effectuée dans la branche de Afficher les modifications actuellement effectuée dans la branche de
release par rapport à develop. release par rapport à develop.
@ -101,7 +103,7 @@ parse_opts "${PRETTYOPTS[@]}" \
-x,--major '$action=update; incversion=major' \ -x,--major '$action=update; incversion=major' \
-z,--minor '$action=update; incversion=minor' \ -z,--minor '$action=update; incversion=minor' \
-p,--patchlevel '$action=update; incversion=patchlevel' \ -p,--patchlevel '$action=update; incversion=patchlevel' \
-v: pver_opts \ -v: '$action=update; add@ pver_opts' \
-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' \
@ -115,6 +117,18 @@ git_ensure_gitvcs
setx branch=git_get_branch setx branch=git_get_branch
if [ "$action" == branch ]; then
:
#setx major=pver -g "" -ux
#setx minor=pver -g "" -uz
#setx patchlevel=pver -g "" -up
#release="release-$minor"
#branches=("release-$major" "release-$minor" "release-$patchlevel" master)
#simple_menu release branches \
# -t "Basculer vers une nouvelle release branch" \
# -m "Veuillez choisir la branche à créer"
fi
if [ "$action" == checkout ]; then if [ "$action" == checkout ]; then
release="$1" release="$1"
source="${2:-develop}" source="${2:-develop}"
@ -123,17 +137,13 @@ if [ "$action" == checkout ]; then
setx -a branches=list_release_branches setx -a branches=list_release_branches
if [ ${#branches[*]} -eq 0 ]; then if [ ${#branches[*]} -eq 0 ]; then
# En l'absence de release branch, proposer un choix de nouvelle # en l'absence de branche de release, basculer sur master
# branche à créer release=master
setx major=pver -g "" -ux elif [ ${#branches[*]} -eq 1 ]; then
setx minor=pver -g "" -uz # s'il n'y en a qu'une, la prendre
setx patchlevel=pver -g "" -up release="${branches[0]}"
release="release-$minor"
branches=("release-$major" "release-$minor" "release-$patchlevel" master)
simple_menu release branches \
-t "Basculer vers une nouvelle release branch" \
-m "Veuillez choisir la branche à créer"
else else
# sinon, donner le choix dans un menu
array_add branches master array_add branches master
default_branch="$branch" default_branch="$branch"
array_contains branches "$default_branch" || default_branch="${branches[0]}" array_contains branches "$default_branch" || default_branch="${branches[0]}"