mettre à jour la version avec pver
This commit is contained in:
parent
f98c977cde
commit
8d4d35dde5
137
todo/prel
137
todo/prel
|
@ -81,6 +81,13 @@ OPTIONS
|
||||||
jusqu'à la release finale. Ainsi, la branche de release est nommée
|
jusqu'à la release finale. Ainsi, la branche de release est nommée
|
||||||
d'après la version finale, mais le projet peut recevoir une version de
|
d'après la version finale, mais le projet peut recevoir une version de
|
||||||
pré-release incrémentale.
|
pré-release incrémentale.
|
||||||
|
-w, --write
|
||||||
|
Si une nouvelle branche est créée avec -u, mettre à jour le fichier
|
||||||
|
VERSION.txt avec pver. C'est l'option par défaut.
|
||||||
|
-n, --no-write
|
||||||
|
Si une nouvelle branche est créée avec -u, NE PAS mettre à jour le
|
||||||
|
fichier VERSION.txt avec pver. Utiliser cette option si la mise à jour
|
||||||
|
du numéro de version doit être faite par manière particulière.
|
||||||
|
|
||||||
-m, --merge
|
-m, --merge
|
||||||
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
|
||||||
|
@ -102,6 +109,7 @@ origin=origin
|
||||||
action=checkout
|
action=checkout
|
||||||
incversion=
|
incversion=
|
||||||
pver_opts=()
|
pver_opts=()
|
||||||
|
write=1
|
||||||
log=
|
log=
|
||||||
diff=
|
diff=
|
||||||
parse_opts "${PRETTYOPTS[@]}" \
|
parse_opts "${PRETTYOPTS[@]}" \
|
||||||
|
@ -117,6 +125,8 @@ parse_opts "${PRETTYOPTS[@]}" \
|
||||||
-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: '$action=update; add@ pver_opts' \
|
-v: '$action=update; add@ pver_opts' \
|
||||||
|
-w,--write write=1 \
|
||||||
|
-n,--no-write write= \
|
||||||
-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' \
|
||||||
|
@ -131,13 +141,14 @@ git_ensure_gitvcs
|
||||||
setx branch=git_get_branch
|
setx branch=git_get_branch
|
||||||
|
|
||||||
if [ "$action" == update ]; then
|
if [ "$action" == update ]; then
|
||||||
setx version=pver -g ""
|
setx oldver=pver -g ""
|
||||||
|
newver=
|
||||||
|
|
||||||
if [ "$incversion" == auto ]; then
|
if [ "$incversion" == auto ]; then
|
||||||
if [ ${#pver_opts[*]} -gt 0 ]; then
|
if [ ${#pver_opts[*]} -gt 0 ]; then
|
||||||
# des options ont été spécifiées, les honorer
|
# des options ont été spécifiées, les honorer
|
||||||
setx specv=pver -s "$version" "${pver_opts[@]}"
|
setx newver=pver -s "$oldver" "${pver_opts[@]}"
|
||||||
release="release-$specv"
|
release="release-$newver"
|
||||||
else
|
else
|
||||||
# sinon, prendre une décision en fonction des branches de release
|
# sinon, prendre une décision en fonction des branches de release
|
||||||
# qui existent déjà
|
# qui existent déjà
|
||||||
|
@ -161,9 +172,9 @@ if [ "$action" == update ]; then
|
||||||
fi
|
fi
|
||||||
case "$incversion" in
|
case "$incversion" in
|
||||||
menu)
|
menu)
|
||||||
setx majorv=pver -s "$version" -ux "${pver_opts[@]}"
|
setx majorv=pver -s "$oldver" -ux "${pver_opts[@]}"
|
||||||
setx minorv=pver -s "$version" -uz "${pver_opts[@]}"
|
setx minorv=pver -s "$oldver" -uz "${pver_opts[@]}"
|
||||||
setx patchlevelv=pver -g "$version" -up "${pver_opts[@]}"
|
setx patchlevelv=pver -g "$oldver" -up "${pver_opts[@]}"
|
||||||
release="release-$minorv"
|
release="release-$minorv"
|
||||||
branches=("release-$majorv" "release-$minorv" "release-$patchlevelv" master)
|
branches=("release-$majorv" "release-$minorv" "release-$patchlevelv" master)
|
||||||
simple_menu release branches \
|
simple_menu release branches \
|
||||||
|
@ -171,19 +182,25 @@ if [ "$action" == update ]; then
|
||||||
-m "Veuillez choisir la branche à créer"
|
-m "Veuillez choisir la branche à créer"
|
||||||
;;
|
;;
|
||||||
major)
|
major)
|
||||||
setx majorv=pver -s "$version" -ux "${pver_opts[@]}"
|
setx newver=pver -s "$oldver" -ux "${pver_opts[@]}"
|
||||||
release="release-$majorv"
|
release="release-$newver"
|
||||||
;;
|
;;
|
||||||
minor)
|
minor)
|
||||||
setx minorv=pver -s "$version" -uz "${pver_opts[@]}"
|
setx newver=pver -s "$oldver" -uz "${pver_opts[@]}"
|
||||||
release="release-$minorv"
|
release="release-$newver"
|
||||||
;;
|
;;
|
||||||
patchlevel)
|
patchlevel)
|
||||||
setx patchlevelv=pver -g "$version" -up "${pver_opts[@]}"
|
setx newver=pver -g "$oldver" -up "${pver_opts[@]}"
|
||||||
release="release-$patchlevelv"
|
release="release-$newver"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
if [ -z "$newver" ]; then
|
||||||
|
# le cas échéant, tenter de calculer la version en fonction de la
|
||||||
|
# release
|
||||||
|
[[ "$release" == release-* ]] && newver="${release#release-}"
|
||||||
|
fi
|
||||||
|
|
||||||
set -- "$release" "$1"
|
set -- "$release" "$1"
|
||||||
action=checkout
|
action=checkout
|
||||||
fi
|
fi
|
||||||
|
@ -223,8 +240,9 @@ if [ "$action" == checkout ]; then
|
||||||
# Créer/basculer vers une release branch
|
# Créer/basculer vers une release branch
|
||||||
git_ensure_cleancheckout
|
git_ensure_cleancheckout
|
||||||
is_any_branch "$release" master release || die "$release: ce n'est pas une release branch"
|
is_any_branch "$release" master release || die "$release: ce n'est pas une release branch"
|
||||||
|
r=0
|
||||||
if git_have_branch "$release"; then
|
if git_have_branch "$release"; then
|
||||||
git checkout "$release"
|
git checkout "$release"; r=$?
|
||||||
else
|
else
|
||||||
estepn "\
|
estepn "\
|
||||||
Vous allez créer la nouvelle release branch ${COULEUR_VERTE}$release${COULEUR_NORMALE}
|
Vous allez créer la nouvelle release branch ${COULEUR_VERTE}$release${COULEUR_NORMALE}
|
||||||
|
@ -233,8 +251,97 @@ Vous allez créer la nouvelle release branch ${COULEUR_VERTE}$release${COULEUR_N
|
||||||
|
|
||||||
git_ensure_branch "$release" "$source" "$origin"
|
git_ensure_branch "$release" "$source" "$origin"
|
||||||
[ $? -eq 2 ] && die "Impossible de créer la branche $release. Veuillez vérifier que la branche $source existe"
|
[ $? -eq 2 ] && die "Impossible de créer la branche $release. Veuillez vérifier que la branche $source existe"
|
||||||
git checkout "$release"
|
git checkout "$release"; r=$?
|
||||||
|
|
||||||
|
if [ "$r" -eq 0 -a -n "$newver" ]; then
|
||||||
|
if pver -uv "$newver"; then
|
||||||
|
git add -A
|
||||||
|
git commit -m "Initialiser la version $newver"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit $?
|
exit "$r"
|
||||||
|
fi
|
||||||
|
|
||||||
|
setx -a branches=list_release_branches
|
||||||
|
setb have_release_branches=[ ${#branches[*]} -gt 0 ]
|
||||||
|
|
||||||
|
release="$1"
|
||||||
|
if [ -n "$release" ]; then
|
||||||
|
if [ -n "$have_release_branches" ]; then
|
||||||
|
is_release_branch "$release" || die "$release: ce n'est pas une release branch"
|
||||||
|
elif ! is_develop_branch "$release"; then
|
||||||
|
die "Aucune branche de release n'existe, vous devez fusionner à partir de develop"
|
||||||
|
fi
|
||||||
|
git_have_branch "$release" || die "$release: branche invalide"
|
||||||
|
elif is_release_branch "$branch"; then
|
||||||
|
release="$branch"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$action" == merge ]; then
|
||||||
|
confirm=
|
||||||
|
|
||||||
|
if [ -z "$release" ]; then
|
||||||
|
if [ ${#branches[*]} -eq 0 ]; then
|
||||||
|
ewarn "Aucune release branch n'a été préparée.
|
||||||
|
Si vous continuez, la branche develop sera fusionnée directement dans master."
|
||||||
|
release=develop
|
||||||
|
confirm=-y
|
||||||
|
elif [ ${#branches[*]} -eq 1 ]; then
|
||||||
|
release="${branches[0]}"
|
||||||
|
estepn "Autosélection de $release"
|
||||||
|
else
|
||||||
|
default_release="$branch"
|
||||||
|
array_contains branches "$default_release" || default_release="${branches[0]}"
|
||||||
|
simple_menu release branches -d "$default_release" \
|
||||||
|
-t "Choix de la release branch" \
|
||||||
|
-m "Veuillez choisir la branche"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
estepn "\
|
||||||
|
Intégration de la branche ${COULEUR_VERTE}$release${COULEUR_NORMALE}
|
||||||
|
dans la branche de destination ${COULEUR_BLEUE}master${COULEUR_NORMALE}"
|
||||||
|
ask_yesno $confirm "Voulez-vous continuer?" O || die
|
||||||
|
|
||||||
|
git checkout master
|
||||||
|
git merge "$release" -m "Intégration de la release branch $release" --no-ff || die
|
||||||
|
|
||||||
|
if [ "$release" != develop ]; then
|
||||||
|
git checkout develop
|
||||||
|
git merge "$release" -m "Intégration de la release branch $release" --no-ff || die
|
||||||
|
|
||||||
|
git checkout master
|
||||||
|
|
||||||
|
estepi "Suppression de la branche locale"
|
||||||
|
git branch -D "$release"
|
||||||
|
|
||||||
|
if git_have_remote "$origin"; then
|
||||||
|
if [ -z "$UTOOLS_VCS_OFFLINE" ]; then
|
||||||
|
estepi "Suppression de la branche distante"
|
||||||
|
git push "$origin" ":$release"
|
||||||
|
else
|
||||||
|
eimportant "\
|
||||||
|
La branche $release 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" ":$release")"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ "$action" == diff ]; then
|
||||||
|
if [ -n "$log" ]; then
|
||||||
|
if [ -n "$release" ]; then
|
||||||
|
git log ${diff:+-p} master.."$release"
|
||||||
|
else
|
||||||
|
git log ${diff:+-p} master..develop
|
||||||
|
fi
|
||||||
|
elif [ -n "$diff" ]; then
|
||||||
|
if [ -n "$release" ]; then
|
||||||
|
git diff master.."$release"
|
||||||
|
else
|
||||||
|
git diff master..develop
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue