nutools/todo/prel

66 lines
2.6 KiB
Plaintext
Raw Normal View History

#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
2015-02-19 16:25:06 +04:00
urequire DEFAULTS ptools
# XXX ajouter la possibilité de faire des pré-releases, --alpha, --beta, --rc
# les pré-releases restent dans la branche de release, et vivent leur vie,
# jusqu'à la release finale qui est mergée dans master. Il faudrait aussi une
# option pour merger les modifications de la branche de release dans develop
function display_help() {
uecho "$scriptname: basculer sur une branche de release
USAGE
$scriptname [options] [SOURCE]
- Vérifier s'il n'y a pas de modifications locales. Sinon, proposer de faire un
commit ou un stash.
- Si aucune branche de release n'existe, assumer -u -z pour préparer une release
mineure. Sinon, basculer simplement sur la branche de release.
OPTIONS
-C, --projdir PROJDIR
Spécifier le répertoire de base du projet qui est dans git. Par défaut,
on travaille dans le répertoire courant et on laisse git trouver le
répertoire de base du projet. Avec cette option, le répertoire courant
est modifié avant de lancer les commandes git.
-O, --origin ORIGIN
Spécifier le nom de l'origine. Par défaut, utiliser 'origin'
-u, --update
Préparer une release. Utiliser une des options -x, -z ou -p pour
spécifier le type de release à préparer. S'il faut créer une nouvelle
branche, la baser sur la branche SOURCE, qui vaut par défaut develop
-x, --major
-z, --minor
-p, --patchlevel
Utilisé avec l'option -u, préparer respectivement une release majeure,
mineure (par défaut), et pour correction de bug.
-m, --merge
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
supprimer. Puis basculer sur la branche master.
Si la branche actuelle est une branche de topic et qu'il n'existe aucune
branche de release, assumer les options -u -z -m
-l, --log
Afficher les modifications actuellement effectuée dans la branche de
release par rapport à develop.
-d, --diff
Afficher les modifications actuellement effectuée dans la branche de
release par rapport à develop, sous forme de diff."
}
projdir=
origin=origin
parse_opts "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \
-C:,--projdir: projdir= \
-O:,--origin: origin= \
@ args -- "$@" && set -- "${args[@]}" || die "$args"
if [ -n "$projdir" ]; then
cd "$projdir" || die
fi
git_ensure_gitvcs