renommer topic en feature

création d'une feature branch
This commit is contained in:
Jephté Clain 2015-02-20 00:11:49 +04:00 committed by Jephte CLAIN
parent 34e020e198
commit 18a2c641de
3 changed files with 58 additions and 20 deletions

View File

@ -28,7 +28,7 @@ function is_hotfix_branch() {
local branch; branch="$(__get_branch "$1")" || return 2 local branch; branch="$(__get_branch "$1")" || return 2
[[ "$branch" == hotfix-* ]] [[ "$branch" == hotfix-* ]]
} }
function is_topic_branch() { function is_feature_branch() {
local branch; branch="$(__get_branch "$1")" || return 2 local branch; branch="$(__get_branch "$1")" || return 2
[ "$branch" == "master" ] && return 1 [ "$branch" == "master" ] && return 1
[ "$branch" == "develop" ] && return 1 [ "$branch" == "develop" ] && return 1
@ -36,3 +36,17 @@ function is_topic_branch() {
[[ "$branch" == hotfix-* ]] && return 1 [[ "$branch" == hotfix-* ]] && return 1
return 0 return 0
} }
function list_release_branches() {
git_list_branches | grep '^release-'
}
function list_hotfix_branches() {
git_list_branches | grep '^hotfix-'
}
function list_feature_branches() {
git_list_branches |
grep -vF master |
grep -vF develop |
grep -v '^release-' |
grep -v '^hotfix-'
}

View File

@ -576,6 +576,7 @@ function git_ensure_branch() {
git branch -t "$branch" "$origin/$branch" || return 2 git branch -t "$branch" "$origin/$branch" || return 2
else else
# créer une nouvelle branche du nom spécifié # créer une nouvelle branche du nom spécifié
git_have_branch "$source" || return 2
git branch "$branch" "$source" || return 2 git branch "$branch" "$source" || return 2
if git_have_remote "$origin"; then if git_have_remote "$origin"; then
git push "$origin" "$branch" && git_track_branch "$branch" "$origin" git push "$origin" "$branch" && git_track_branch "$branch" "$origin"

59
pdev
View File

@ -7,16 +7,16 @@ function display_help() {
uecho "$scriptname: basculer sur une branche de développement uecho "$scriptname: basculer sur une branche de développement
USAGE USAGE
$scriptname [options] [TOPIC [SOURCE]] $scriptname [options] [FEATURE [SOURCE]]
- Vérifier l'existence de la branche develop. La créer si nécessaire en la - Vérifier l'existence de la branche develop. La créer si nécessaire en la
basant sur [origin/]master. basant sur [origin/]master.
- Vérifier s'il n'y a pas de modifications locales. Sinon, proposer de faire un - Vérifier s'il n'y a pas de modifications locales. Sinon, proposer de faire un
commit ou un stash. commit ou un stash.
- Si TOPIC est spécifié, et si on n'est pas déjà sur cette branche, basculer - 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 vers cette nouvelle branche. S'il s'agit d'une nouvelle branche, la baser sur
la branche SOURCE, qui vaut par défaut develop 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 - 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. solution, sinon afficher un menu pour choisir la branche de destination.
OPTIONS OPTIONS
@ -24,14 +24,14 @@ OPTIONS
Créer la branche develop et la configurer le cas échéant pour qu'elle Créer la branche develop et la configurer le cas échéant pour qu'elle
traque la branche origin/develop traque la branche origin/develop
-m, --merge -m, --merge
Si la branche actuelle est une branche de topic, la merger dans develop Si la branche actuelle est une feature branch, la merger dans develop
puis la supprimer. Puis basculer sur la branche develop. puis la supprimer. Puis basculer sur la branche develop.
-l, --log -l, --log
Afficher les modifications actuellement effectuée dans la branche de Afficher les modifications actuellement effectuée dans la feature
topic par rapport à develop. branch par rapport à develop.
-d, --diff -d, --diff
Afficher les modifications actuellement effectuée dans la branche de Afficher les modifications actuellement effectuée dans la feature branch
topic par rapport à develop, sous forme de diff." par rapport à develop, sous forme de diff."
} }
parse_opts "${PRETTYOPTS[@]}" \ parse_opts "${PRETTYOPTS[@]}" \
@ -40,20 +40,43 @@ parse_opts "${PRETTYOPTS[@]}" \
git_ensure_gitvcs git_ensure_gitvcs
if ! git_have_branch develop; then if ! git_have_branch develop; then
estepn "Création de la branche develop" estepn "Configuration de la branche develop"
git_ensure_branch develop git_ensure_branch develop
[ $? -eq 2 ] && die "Une erreur s'est produite pendant la création de la branche develop" [ $? -eq 2 ] && die "Impossible de créer la branche develop. Veuillez vérifier que la branche master existe"
fi fi
git_track_branch develop
topic="$1" feature="$1"
source="$2" source="${2:-develop}"
if [ -n "$topic" ]; then if [ -z "$feature" ]; then
# Créer/basculer vers une branche de topic setx branch=git_get_branch
: setx -a branches=list_feature_branches
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"
else else
# Créer/basculer vers la branche de développement 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 fi