squelette d'implémentation de pdev, prel, pfix

This commit is contained in:
Jephte CLAIN 2014-01-28 23:34:56 +04:00
parent fe22205c8c
commit 2e3c86cf05
3 changed files with 122 additions and 0 deletions

38
pdev Executable file
View File

@ -0,0 +1,38 @@
#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
source "$(dirname "$0")/ulib/ulib" || exit 1; urequire DEFAULTS
function display_help() {
uecho "$scriptname: basculer sur une branche de développement
USAGE
$scriptname [options] [TOPIC [SOURCE]]
- Vérifier l'existence de la branche develop. La créer si nécessaire en la
basant sur [origin/]master.
- Vérifier s'il n'y a pas de modifications locales. Sinon, proposer de faire un
commit ou un stash.
- Si TOPIC est spécifié, et si on n'est pas déjà sur cette branche, basculer
vers cette nouvelle branche. S'il s'agit d'une nouvelle branche, la baser sur
la branche SOURCE, qui vaut par défaut develop
- Si TOPIC n'est pas spécifié, basculer sur develop s'il s'agit de la seule
solution, sinon afficher un menu pour choisir la branche de destination.
OPTIONS
--init
Créer la branche develop et la configurer le cas échéant pour qu'elle
traque la branche origin/develop
-m, --merge
Si la branche actuelle est une branche de topic, la merger dans develop
puis la supprimer. Puis basculer sur la branche develop.
-l, --log
Afficher les modifications actuellement effectuée dans la branche de
topic par rapport à develop.
-d, --diff
Afficher les modifications actuellement effectuée dans la branche de
topic par rapport à develop, sous forme de diff."
}
parse_opts "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \
@ args -- "$@" && set -- "${args[@]}" || die "$args"

37
pfix Executable file
View File

@ -0,0 +1,37 @@
#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
source "$(dirname "$0")/ulib/ulib" || exit 1; urequire DEFAULTS
function display_help() {
uecho "$scriptname: basculer sur une branche de hotfix
USAGE
$scriptname [options] [HOTFIX [SOURCE]]
- Vérifier s'il n'y a pas de modifications locales. Sinon, proposer de faire un
commit ou un stash.
- Si TOPIC est spécifié, et si on n'est pas déjà sur cette branche, basculer
vers cette nouvelle branche. S'il s'agit d'une nouvelle branche, la baser sur
la branche SOURCE, qui vaut par défaut master
- Si TOPIC n'est pas spécifié, afficher un menu pour choisir la branche de
destination.
OPTIONS
-m, --merge
Si la branche actuelle est une branche de hotfix, la merger dans master
(ou dans la branche de release), et dans develop, puis la supprimer.
Puis basculer sur la branche master.
-l, --log
Afficher les modifications actuellement effectuée dans la branche de
hotfix par rapport à master.
-d, --diff
Afficher les modifications actuellement effectuée dans la branche de
hotfix par rapport à master, sous forme de diff.
"
}
parse_opts "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \
@ args -- "$@" && set -- "${args[@]}" || die "$args"

47
prel Executable file
View File

@ -0,0 +1,47 @@
#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
source "$(dirname "$0")/ulib/ulib" || exit 1; urequire DEFAULTS
# 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
-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."
}
parse_opts "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \
@ args -- "$@" && set -- "${args[@]}" || die "$args"