# prel

~~~
prel: basculer sur une branche de release

USAGE
    prel -u [SOURCE]
    prel -c [RELEASE [SOURCE]]
    prel -m|-l|-d [RELEASE]

- Vérifier s'il n'y a pas de modifications locales. Sinon, proposer de faire un
  commit ou un stash.
- Avec l'option -c, s'il existe une branche de release, proposer de basculer
  vers elle ou sur la branche master. Sinon, basculer sur la branche master.
- 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
  vaut par défaut develop

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'
    -o, --offline
        En cas de création d'une branche, ne pas pousser vers l'origine; ne pas
        tenter le cas échéant de traquer la branche dans l'origine; ne pas
        supprimer une 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

    -c, --checkout
        Basculer vers une branche de release existante. C'est l'option par
        défaut. Si aucune branche de release n'existe, basculer vers master
    -u, --update
        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
        créée pour le type de release existe déjà, basculer vers cette branche.
        S'il faut la créer, la baser sur la branche SOURCE, qui vaut par défaut
        develop
    --menu
    -x, --major
    -z, --minor
    -p, --patchlevel
        Utilisé avec l'option -u, soit afficher un menu pour choisir la version
        de la nouvelle release (par défaut), soit préparer respectivement une
        release majeure, mineure, ou pour correction de bug.
    -v-OPT
        Avec l'option -u, spécifier une option de pver permettant de choisir la
        version de la nouvelle release. Les options supportées sont -v, -l, -a,
        -b, -r et -R. Par exemple, si la version actuelle sur la branche master
        est 0.2.3, les options '-uz -v-lbeta' permettent de préparer la release
        0.3.0-beta
        En principe, cette option n'a pas à être utilisée, puisque dans une
        branche de release, on peut faire vivre les versions de pré-release
        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
        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 d'une manière particulière.
    -e, --edit
        Editer le fichier CHANGES.txt autogénéré par -u -w
        Cette option est surtout utile si -m est utilisé avec -u, pour donner la
        possibilité de corriger la liste des modifications avant leur
        enregistrement définitif.

    -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.
        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.
    --delete
        Supprimer une branche de release, à condition qu'elle aie déjà été
        entièrement fusionnée dans la branch master
    --force-delete
        Supprimer une branche de release, même si elle n'a pas encore été
        fusionnée dans la branche master

    -s, --summary
        Afficher la liste des différences entre la branche develop et la branche
        master, comme elle serait générée par les options -u -w pour le fichier
        CHANGES.txt
    -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.
~~~

-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary