finaliser ptool

This commit is contained in:
Jephté Clain 2025-10-21 11:05:07 +04:00
parent 54c943c0e3
commit cf867765d1
2 changed files with 69 additions and 35 deletions

View File

@ -36,12 +36,14 @@ PMAN_TOOL_PDEV=DEVELOP
PMAN_TOOL_PWIP=FEATURE PMAN_TOOL_PWIP=FEATURE
PMAN_TOOL_PMAIN=MAIN PMAN_TOOL_PMAIN=MAIN
PMAN_TOOL_PDIST=DIST PMAN_TOOL_PDIST=DIST
UPSTREAM_BASE= ; UPSTREAM_MERGE_FROM= ; UPSTREAM_MERGE_TO=DEVELOP ; UPSTREAM_PREL= ; UPSTREAM_DELETE= UPSTREAM_BASE=DEVELOP ; UPSTREAM_MERGE_FROM= ; UPSTREAM_MERGE_TO=DEVELOP ; UPSTREAM_PREL= ; UPSTREAM_DELETE=
DEVELOP_BASE=MAIN ; DEVELOP_MERGE_FROM=FEATURE ; DEVELOP_MERGE_TO=MAIN ; DEVELOP_PREL=from ; DEVELOP_DELETE=to DEVELOP_BASE=MAIN ; DEVELOP_MERGE_FROM=FEATURE ; DEVELOP_MERGE_TO=MAIN ; DEVELOP_PREL=from ; DEVELOP_DELETE=to
MAIN_BASE=DEVELOP ; MAIN_MERGE_FROM=DEVELOP ; MAIN_MERGE_TO=DIST ; MAIN_PREL=to ; MAIN_DELETE= MAIN_BASE=DEVELOP ; MAIN_MERGE_FROM=DEVELOP ; MAIN_MERGE_TO=DIST ; MAIN_PREL=to ; MAIN_DELETE=
DIST_BASE=MAIN ; DIST_MERGE_FROM=MAIN ; DIST_MERGE_TO= ; DIST_PREL= ; DIST_DELETE= DIST_BASE=MAIN ; DIST_MERGE_FROM=MAIN ; DIST_MERGE_TO= ; DIST_PREL= ; DIST_DELETE=
FEATURE_BASE=DEVELOP ; FEATURE_MERGE_FROM= ; FEATURE_MERGE_TO=DEVELOP ; FEATURE_PREL= ; FEATURE_DELETE=from FEATURE_BASE=DEVELOP ; FEATURE_MERGE_FROM= ; FEATURE_MERGE_TO=DEVELOP ; FEATURE_PREL= ; FEATURE_DELETE=from
UPSTREAM_CREATE_FUNCTION=_create_upstream_action
function get_base_branch() { function get_base_branch() {
# afficher la branche depuis laquelle créer la branche $1 # afficher la branche depuis laquelle créer la branche $1
# retourner 1 en cas d'erreur (pas de branche source) # retourner 1 en cas d'erreur (pas de branche source)
@ -664,15 +666,48 @@ Veuillez éditer le fichier .pman.conf"
[ "$1" == init -o -n "$IfBaseBranch" ] || die "$BaseBranch: cette branche n'existe pas (le dépôt a-t-il été initialisé?)" [ "$1" == init -o -n "$IfBaseBranch" ] || die "$BaseBranch: cette branche n'existe pas (le dépôt a-t-il été initialisé?)"
} }
function _create_default_action() {
enote "Vous allez créer la branche ${COULEUR_BLEUE}$RefBranch${COULEUR_NORMALE} <-- ${COULEUR_ROUGE}$BaseBranch${COULEUR_NORMALE}"
ask_yesno "Voulez-vous continuer?" O || die
einfo "Création de la branche $RefBranch"
git checkout -b "$RefBranch" "$BaseBranch" || die
push_branches+=("$RefBranch")
}
function _create_upstream_action() {
enote "Vous allez créer la branche ${COULEUR_BLEUE}$RefBranch${COULEUR_NORMALE}"
ask_yesno "Voulez-vous continuer?" O || die
# faire une copie de la configuration actuelle
local config; ac_set_tmpfile config
set -x; ls -l "$ConfigFile" #XXX
cp "$ConfigFile" "$config"
set +x #XXX
einfo "Création de la branche $RefBranch"
git checkout --orphan "$RefBranch" || die
git rm -rf .
cp "$config" .pman.conf
git add .pman.conf
git commit -m "commit initial"
push_branches+=("$RefBranch")
einfo "Fusion dans $DevelopBranch"
git checkout "$DevelopBranch"
git merge \
--no-ff -m "<pman>Intégration initiale de la branche $RefBranch" \
-srecursive -Xours --allow-unrelated-histories \
"$RefBranch"
push_branches+=("$DevelopBranch")
}
function checkout_action() { function checkout_action() {
local -a push_branches local -a push_branches
[ -n "$REF_UNIQUE" ] || resolve_unique_branch "$@" [ -n "$REF_UNIQUE" ] || resolve_unique_branch "$@"
_ensure_ref_branch init _ensure_ref_branch init
#if [ -n "$IfRefBranch" ]; then
# git checkout "$IfRefBranch"
#el
if array_contains LocalBranches "$RefBranch"; then if array_contains LocalBranches "$RefBranch"; then
git checkout "$RefBranch" git checkout "$RefBranch"
elif array_contains AllBranches "$RefBranch"; then elif array_contains AllBranches "$RefBranch"; then
@ -683,12 +718,10 @@ function checkout_action() {
_ensure_base_branch _ensure_base_branch
resolve_should_push resolve_should_push
enote "Vous allez créer la branche ${COULEUR_BLEUE}$RefBranch${COULEUR_NORMALE} <-- ${COULEUR_ROUGE}$BaseBranch${COULEUR_NORMALE}" local create_function
ask_yesno "Voulez-vous continuer?" O || die create_function="${REF_BRANCH}_CREATE_FUNCTION"; create_function="${!create_function}"
[ -n "$create_function" ] || create_function=_create_default_action
einfo "Création de la branche $RefBranch" "$create_function"
git checkout -b "$RefBranch" "$BaseBranch" || die
push_branches+=("$RefBranch")
_push_branches _push_branches
fi fi

View File

@ -153,6 +153,20 @@ function rebase_action() {
################################################################################ ################################################################################
chdir=
Origin=
ConfigBranch=
ConfigFile=
_Fake=
_KeepScript=
action=checkout
ShowLevel=0
TechMerge=
SquashMsg=
Push=1
Delete=1
AfterMerge=
loaded_config= loaded_config=
merge_dir= merge_dir=
if [ "$MYNAME" == ptool ]; then if [ "$MYNAME" == ptool ]; then
@ -211,13 +225,13 @@ else
set_pman_vars "$merge_dir" set_pman_vars "$merge_dir"
fi fi
BranchDesc= RefDesc=
MergeSrcDesc= MergeSrcDesc=
MergeDestDesc= MergeDestDesc=
if [ -n "$REF_BRANCH" ]; then if [ -n "$REF_BRANCH" ]; then
BranchDesc="${COULEUR_BLANCHE}<$REF_BRANCH>" RefDesc="${COULEUR_BLANCHE}<$REF_BRANCH>"
[ -n "$RefBranch" -a -n "$REF_UNIQUE" ] && BranchDesc="$BranchDesc ($RefBranch)" [ -n "$RefBranch" -a -n "$REF_UNIQUE" ] && RefDesc="$RefDesc ($RefBranch)"
BranchDesc="$BranchDesc${COULEUR_NORMALE}" RefDesc="$RefDesc${COULEUR_NORMALE}"
fi fi
if [ -n "$MERGE_SRC" ]; then if [ -n "$MERGE_SRC" ]; then
MergeSrcDesc="${COULEUR_BLEUE}<$MERGE_SRC>" MergeSrcDesc="${COULEUR_BLEUE}<$MERGE_SRC>"
@ -231,8 +245,8 @@ if [ -n "$MERGE_DEST" ]; then
fi fi
if [ -n "$REF_UNIQUE" ] if [ -n "$REF_UNIQUE" ]
then purpose="gérer la branche $BranchDesc" then purpose="gérer la branche $RefDesc"
else purpose="gérer les branches $BranchDesc" else purpose="gérer les branches $RefDesc"
fi fi
usage="--checkout" usage="--checkout"
variables= variables=
@ -262,11 +276,11 @@ after_merge_def=('$:' "++non applicable")
if [ -n "$RefBranch" -a -n "$REF_UNIQUE" ]; then if [ -n "$RefBranch" -a -n "$REF_UNIQUE" ]; then
checkout_action_def=(action=checkout "++\ checkout_action_def=(action=checkout "++\
créer le cas échéant la branche $BranchDesc et basculer vers elle. créer le cas échéant la branche $RefDesc et basculer vers elle.
c'est l'option par défaut") c'est l'option par défaut")
elif [ -z "$REF_UNIQUE" ]; then elif [ -z "$REF_UNIQUE" ]; then
checkout_action_def=(action=checkout "\ checkout_action_def=(action=checkout "\
créer le cas échéant la branche $BranchDesc et basculer vers elle. créer le cas échéant la branche $RefDesc et basculer vers elle.
c'est l'option par défaut") c'est l'option par défaut")
else else
checkout_action_def=(action=checkout "\ checkout_action_def=(action=checkout "\
@ -325,19 +339,6 @@ c'est l'option par défaut")
after_merge_def=(AfterMerge= "évaluer le script spécifié après une fusion *réussie*") after_merge_def=(AfterMerge= "évaluer le script spécifié après une fusion *réussie*")
fi fi
chdir=
Origin=
ConfigBranch=
ConfigFile=
_Fake=
_KeepScript=
action=checkout
ShowLevel=0
TechMerge=
SquashMsg=
Push=1
Delete=1
AfterMerge=
args=( args=(
"$purpose" "$purpose"
"\ "\