suite support feature branches
This commit is contained in:
parent
0b01946090
commit
e4e6a98be2
@ -3,6 +3,10 @@
|
||||
source "$(dirname -- "$0")/../load.sh" || exit 1
|
||||
require: git pman pman.conf
|
||||
|
||||
git_cleancheckout_DIRTY="\
|
||||
Vous avez des modifications locales.
|
||||
Enregistrez ces modifications avant de fusionner la branche"
|
||||
|
||||
### description des variables ###
|
||||
# * PMAN_TOOL -- nom de l'outil, e.g pdev, pmain, pdist
|
||||
# * PMAN_BRANCH -- code de la branche de référence basé sur le nom de l'outil
|
||||
@ -64,9 +68,29 @@ function set_pman_vars() {
|
||||
[ -n "$PMAN_MERGE_SRC" -a -n "$PMAN_MERGE_DEST" ] && PMAN_CAN_MERGE=1 || PMAN_CAN_MERGE=
|
||||
}
|
||||
|
||||
git_cleancheckout_DIRTY="\
|
||||
Vous avez des modifications locales.
|
||||
Enregistrez ces modifications avant de fusionner la branche"
|
||||
function resolve_unique_branch() {
|
||||
if [ "$PMAN_BRANCH" == FEATURE ]; then
|
||||
if [ $# -gt 0 ]; then
|
||||
UniqueBranch="$FEATURE${1#$FEATURE}"
|
||||
elif [[ "$CurrentBranch" == "$FEATURE"* ]]; then
|
||||
UniqueBranch="$CurrentBranch"
|
||||
elif [ ${#FeatureBranches[*]} -eq 0 ]; then
|
||||
die "Vous devez spécifier la branche de feature"
|
||||
elif [ ${#FeatureBranches[*]} -eq 1 ]; then
|
||||
UniqueBranch="${FeatureBranches[0]}"
|
||||
else
|
||||
simple_menu \
|
||||
UniqueBranch FeatureBranches \
|
||||
-t "Branches de feature" \
|
||||
-m "Veuillez choisir la branche de feature" \
|
||||
-d "${FeatureBranches[0]}"
|
||||
fi
|
||||
PMAN_BRANCH=UniqueBranch
|
||||
PMAN_MERGE_SRC=UniqueBranch
|
||||
else
|
||||
die "resolve_unique_branch: $PMAN_BRANCH: non implémenté"
|
||||
fi
|
||||
}
|
||||
|
||||
function dump_action() {
|
||||
enote "Valeurs des variables:
|
||||
@ -97,10 +121,6 @@ DistBranch=$DistBranch
|
||||
"
|
||||
}
|
||||
|
||||
#XXXX
|
||||
#[ -n "${!PMAN_MERGE_SRC}" ] ||
|
||||
# die "Aucune branche définie pour $PMAN_MERGE_SRC. Veuillez éditer le fichier .pman.conf"
|
||||
|
||||
function _ensure_branch() {
|
||||
[ -n "${!PMAN_BRANCH}" ] || die "\
|
||||
La branche $PMAN_BRANCH n'a pas été définie.
|
||||
@ -132,9 +152,13 @@ Veuillez éditer le fichier .pman.conf"
|
||||
function checkout_action() {
|
||||
local -a push_branches
|
||||
|
||||
[ -n "$PMAN_UNIQUE" ] || resolve_unique_branch "$@" || die
|
||||
_ensure_branch init
|
||||
|
||||
if [ -n "$PmanBranch" ]; then
|
||||
git checkout "$PmanBranch"
|
||||
elif array_contains LocalBranches "${!PMAN_BRANCH}"; then
|
||||
git checkout "${!PMAN_BRANCH}"
|
||||
elif array_contains AllBranches "${!PMAN_BRANCH}"; then
|
||||
enote "${!PMAN_BRANCH}: une branche du même nom existe dans l'origine"
|
||||
ask_yesno "Voulez-vous basculer sur cette branche?" O || die
|
||||
@ -156,7 +180,10 @@ function checkout_action() {
|
||||
fi
|
||||
}
|
||||
|
||||
function ensure_branches() {
|
||||
#XXXX
|
||||
#[ -n "${!PMAN_MERGE_SRC}" ] ||
|
||||
# die "Aucune branche définie pour $PMAN_MERGE_SRC. Veuillez éditer le fichier .pman.conf"
|
||||
function ensure_merge_branches() {
|
||||
[ -n "$PMAN_CAN_MERGE" ] ||
|
||||
die "${!PMAN_BRANCH}: Aucune configuration de fusion trouvée pour cette branche"
|
||||
|
||||
@ -188,9 +215,10 @@ $commits
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function show_action() {
|
||||
git_check_cleancheckout || ewarn "$git_cleancheckout_DIRTY"
|
||||
ensure_branches
|
||||
ensure_merge_branches
|
||||
_show_action "$@"
|
||||
}
|
||||
|
||||
@ -305,7 +333,8 @@ Il y a aussi les commandes supplémentaires suivantes:
|
||||
}
|
||||
|
||||
function merge_action() {
|
||||
ensure_branches -a
|
||||
[ -n "$PMAN_UNIQUE" ] || resolve_unique_branch "$@" || die
|
||||
ensure_merge_branches -a
|
||||
|
||||
if [ -n "$PMAN_PREL_MERGE" ]; then
|
||||
[ -n "$ForceMerge" ] || die "$SrcBranch: cette branche doit être fusionnée dans $DestBranch avec prel"
|
||||
@ -324,6 +353,7 @@ function merge_action() {
|
||||
array_contains LocalBranches "$DestBranch" || die "$DestBranch: branche locale introuvable"
|
||||
|
||||
resolve_should_push
|
||||
set -x #XXX
|
||||
_merge_action "$@"
|
||||
}
|
||||
|
||||
@ -335,11 +365,11 @@ function rebase_action() {
|
||||
# Programme principal
|
||||
################################################################################
|
||||
|
||||
set_pman_vars
|
||||
loaded_config=
|
||||
if check_gitdir; then
|
||||
load_branches all
|
||||
load_config
|
||||
set_pman_vars
|
||||
if [ -n "${!PMAN_MERGE_SRC}" ]; then
|
||||
load_branches current "${!PMAN_MERGE_SRC}"
|
||||
loaded_config=1
|
||||
@ -347,6 +377,8 @@ if check_gitdir; then
|
||||
load_branches current "${!PMAN_BRANCH}"
|
||||
loaded_config=1
|
||||
fi
|
||||
else
|
||||
set_pman_vars
|
||||
fi
|
||||
|
||||
BranchDesc=
|
||||
@ -509,6 +541,7 @@ if [ -z "$loaded_config" -o -n "$chdir" -o -n "$ConfigFile" -o -n "$ConfigBranch
|
||||
ensure_gitdir "$chdir"
|
||||
load_branches all
|
||||
load_config
|
||||
set_pman_vars
|
||||
if [ -n "${!PMAN_MERGE_SRC}" ]; then
|
||||
load_branches current "${!PMAN_MERGE_SRC}"
|
||||
elif [ -n "${!PMAN_BRANCH}" ]; then
|
||||
|
Loading…
x
Reference in New Issue
Block a user