nutools/pdev

83 lines
2.8 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
function display_help() {
uecho "$scriptname: basculer sur une branche de développement
USAGE
$scriptname [options] [FEATURE [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 FEATURE 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 FEATURE 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 feature branch, la merger dans develop
puis la supprimer. Puis basculer sur la branche develop.
-l, --log
Afficher les modifications actuellement effectuée dans la feature
branch par rapport à develop.
-d, --diff
Afficher les modifications actuellement effectuée dans la feature branch
par rapport à develop, sous forme de diff."
}
parse_opts "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \
@ args -- "$@" && set -- "${args[@]}" || die "$args"
2015-02-19 16:25:06 +04:00
2015-02-19 17:04:59 +04:00
git_ensure_gitvcs
if ! git_have_branch develop; then
estepn "Configuration de la branche develop"
2015-02-19 17:04:59 +04:00
git_ensure_branch develop
[ $? -eq 2 ] && die "Impossible de créer la branche develop. Veuillez vérifier que la branche master existe"
2015-02-19 17:04:59 +04:00
fi
feature="$1"
source="${2:-develop}"
2015-02-19 16:25:06 +04:00
if [ -z "$feature" ]; then
setx branch=git_get_branch
setx -a branches=list_feature_branches
2015-02-19 16:25:06 +04:00
if [ ${#branches[*]} -eq 0 ]; then
# En l'absence de feature branch, basculer sur develop
feature=develop
else
array_ins branches develop
simple_menu feature branches -d "$branch" \
-t "Basculer vers une feature branch" \
-m "Veuillez choisir la branche vers laquelle basculer"
fi
fi
# On est peut-être déjà sur la bonne branche
if git_is_branch "$feature"; then
git_track_branch "$feature"
exit 0
fi
# Créer/basculer vers une feature branch
git_ensure_cleancheckout
if git_have_branch "$feature"; then
git checkout "$feature"
2015-02-19 16:25:06 +04:00
else
estepn "\
Vous allez créer la nouvelle feature branch ${COULEUR_VERTE}$feature${COULEUR_NORMALE}
à partir de la branche source ${COULEUR_BLEUE}$source${COULEUR_NORMALE}"
ask_yesno "Voulez-vous continuer?" O || die
git checkout -b "$feature" "$source"
fi