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,11 +36,13 @@ PMAN_TOOL_PDEV=DEVELOP
PMAN_TOOL_PWIP=FEATURE
PMAN_TOOL_PMAIN=MAIN
PMAN_TOOL_PDIST=DIST
UPSTREAM_BASE= ; 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
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=
FEATURE_BASE=DEVELOP ; FEATURE_MERGE_FROM= ; FEATURE_MERGE_TO=DEVELOP ; FEATURE_PREL= ; FEATURE_DELETE=from
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
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=
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() {
# afficher la branche depuis laquelle créer la branche $1
@ -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é?)"
}
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() {
local -a push_branches
[ -n "$REF_UNIQUE" ] || resolve_unique_branch "$@"
_ensure_ref_branch init
#if [ -n "$IfRefBranch" ]; then
# git checkout "$IfRefBranch"
#el
if array_contains LocalBranches "$RefBranch"; then
git checkout "$RefBranch"
elif array_contains AllBranches "$RefBranch"; then
@ -683,12 +718,10 @@ function checkout_action() {
_ensure_base_branch
resolve_should_push
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")
local create_function
create_function="${REF_BRANCH}_CREATE_FUNCTION"; create_function="${!create_function}"
[ -n "$create_function" ] || create_function=_create_default_action
"$create_function"
_push_branches
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=
merge_dir=
if [ "$MYNAME" == ptool ]; then
@ -211,13 +225,13 @@ else
set_pman_vars "$merge_dir"
fi
BranchDesc=
RefDesc=
MergeSrcDesc=
MergeDestDesc=
if [ -n "$REF_BRANCH" ]; then
BranchDesc="${COULEUR_BLANCHE}<$REF_BRANCH>"
[ -n "$RefBranch" -a -n "$REF_UNIQUE" ] && BranchDesc="$BranchDesc ($RefBranch)"
BranchDesc="$BranchDesc${COULEUR_NORMALE}"
RefDesc="${COULEUR_BLANCHE}<$REF_BRANCH>"
[ -n "$RefBranch" -a -n "$REF_UNIQUE" ] && RefDesc="$RefDesc ($RefBranch)"
RefDesc="$RefDesc${COULEUR_NORMALE}"
fi
if [ -n "$MERGE_SRC" ]; then
MergeSrcDesc="${COULEUR_BLEUE}<$MERGE_SRC>"
@ -231,8 +245,8 @@ if [ -n "$MERGE_DEST" ]; then
fi
if [ -n "$REF_UNIQUE" ]
then purpose="gérer la branche $BranchDesc"
else purpose="gérer les branches $BranchDesc"
then purpose="gérer la branche $RefDesc"
else purpose="gérer les branches $RefDesc"
fi
usage="--checkout"
variables=
@ -262,11 +276,11 @@ after_merge_def=('$:' "++non applicable")
if [ -n "$RefBranch" -a -n "$REF_UNIQUE" ]; then
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")
elif [ -z "$REF_UNIQUE" ]; then
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")
else
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*")
fi
chdir=
Origin=
ConfigBranch=
ConfigFile=
_Fake=
_KeepScript=
action=checkout
ShowLevel=0
TechMerge=
SquashMsg=
Push=1
Delete=1
AfterMerge=
args=(
"$purpose"
"\