From 8e347bc23e548d4a3a655290c3bd403d149bb1ce Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Mon, 20 Oct 2025 12:15:39 +0400 Subject: [PATCH] modifs.mineures sans commentaires --- bash/src/pman.conf.sh | 2 - bash/src/pman.sh | 8 +-- bash/src/pman.tool.sh | 152 +++++++++++++++++++--------------------- bash/src/pman74.conf.sh | 4 -- bash/src/pman82.conf.sh | 4 -- wip/_pman.tool | 31 ++------ wip/pinit | 3 +- 7 files changed, 81 insertions(+), 123 deletions(-) diff --git a/bash/src/pman.conf.sh b/bash/src/pman.conf.sh index c33874c..f5a4ace 100644 --- a/bash/src/pman.conf.sh +++ b/bash/src/pman.conf.sh @@ -1,7 +1,5 @@ # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 -## configuration par défaut - UPSTREAM= DEVELOP=develop FEATURE=wip/ diff --git a/bash/src/pman.sh b/bash/src/pman.sh index 6913994..4cfc677 100644 --- a/bash/src/pman.sh +++ b/bash/src/pman.sh @@ -128,12 +128,7 @@ function should_delete_merged() { * PmanMergeDest -- nom effectif de la branche destination si elle est définie dans .pman.conf * IfMergeDest -- nom effectif de la branche source *si elle existe*, vide - sinon - -* PMAN_CAN_MERGE -- indique si la fusion est théoriquement possible, c'est à - dire que $PMAN_MERGE_SRC et $PMAN_MERGE_DEST sont tous les deux non vides -* IfCanMerge -- indique si la fusion est effectivement possible, c'est à dire - que $IfMergeSrc et $IfMergeDest sont tous les deux non vides" + sinon" [ -n "$PMAN_TOOL" ] || PMAN_TOOL="$MYNAME" PMAN_REF_BRANCH="PMAN_TOOL_${PMAN_TOOL^^}"; PMAN_REF_BRANCH="${!PMAN_REF_BRANCH}" @@ -167,7 +162,6 @@ function set_pman_vars() { ;; esac - [ -n "$PMAN_MERGE_SRC" -a -n "$PMAN_MERGE_DEST" ] && PMAN_CAN_MERGE=1 || PMAN_CAN_MERGE= [ -n "$PMAN_MERGE_SRC" ] && PmanMergeSrc="${!PMAN_MERGE_SRC}" || PmanMergeSrc= [ -n "$PMAN_MERGE_DEST" ] && PmanMergeDest="${!PMAN_MERGE_DEST}" || PmanMergeDest= } diff --git a/bash/src/pman.tool.sh b/bash/src/pman.tool.sh index 82ce248..56fe559 100644 --- a/bash/src/pman.tool.sh +++ b/bash/src/pman.tool.sh @@ -4,35 +4,11 @@ git_cleancheckout_DIRTY="\ Vous avez des modifications locales. Enregistrez ces modifications avant de fusionner la branche" -function resolve_unique_branch() { - if [ "$PMAN_REF_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_REF_BRANCH=UniqueBranch - PMAN_MERGE_SRC=UniqueBranch - else - die "resolve_unique_branch: $PMAN_REF_BRANCH: non implémenté" - fi -} - function dump_action() { enote "Valeurs des variables: PMAN_TOOL=$PMAN_TOOL PMAN_REF_BRANCH=$PMAN_REF_BRANCH${PmanRefBranch:+ PmanRefBranch=$PmanRefBranch IfRefBranch=$IfRefBranch} -PMAN_BASE_BRANCH=$PMAN_BASE_BRANCH${PmanBaseBranch:+ PmanBaseBranch=$PmanBaseBranch IfCreateBase=$IfCreateBase} +PMAN_BASE_BRANCH=$PMAN_BASE_BRANCH${PmanBaseBranch:+ PmanBaseBranch=$PmanBaseBranch IfBaseBranch=$IfBaseBranch} PMAN_MERGE_FROM=$PMAN_MERGE_FROM PMAN_MERGE_TO=$PMAN_MERGE_TO PMAN_DIR=$PMAN_DIR @@ -40,7 +16,6 @@ PMAN_PREL_MERGE=$PMAN_PREL_MERGE PMAN_DELETE_MERGED=$PMAN_DELETE_MERGED PMAN_MERGE_SRC=$PMAN_MERGE_SRC${PmanMergeSrc:+ PmanMergeSrc=$PmanMergeSrc IfMergeSrc=$IfMergeSrc} PMAN_MERGE_DEST=$PMAN_MERGE_DEST${PmanMergeDest:+ PmanMergeDest=$PmanMergeDest IfMergeDest=$IfMergeDest} -PMAN_CAN_MERGE=$PMAN_CAN_MERGE IfCanMerge=$IfCanMerge CurrentBranch=$CurrentBranch LocalBranches=${LocalBranches[*]} @@ -57,7 +32,34 @@ DistBranch=$DistBranch " } -function _ensure_branch() { +function resolve_unique_branch() { + if [ "$PMAN_REF_BRANCH" == FEATURE ]; then + if [ $# -gt 0 ]; then + PmanRefBranch="$FEATURE${1#$FEATURE}" + elif [[ "$CurrentBranch" == "$FEATURE"* ]]; then + PmanRefBranch="$CurrentBranch" + elif [ ${#FeatureBranches[*]} -eq 0 ]; then + die "Vous devez spécifier la branche de feature" + elif [ ${#FeatureBranches[*]} -eq 1 ]; then + PmanRefBranch="${FeatureBranches[0]}" + else + simple_menu \ + PmanRefBranch FeatureBranches \ + -t "Branches de feature" \ + -m "Veuillez choisir la branche de feature" \ + -d "${FeatureBranches[0]}" + fi + else + die "resolve_unique_branch: $PMAN_REF_BRANCH: non implémenté" + fi + if [ "$PMAN_DIR" == to ]; then + PmanMergeSrc="$PmanRefBranch" + elif [ "$PMAN_DIR" == from ]; then + PmanMergeDest="$PmanRefBranch" + fi +} + +function _ensure_ref_branch() { [ -n "$PmanRefBranch" ] || die "\ La branche $PMAN_REF_BRANCH n'a pas été définie. Veuillez éditer le fichier .pman.conf" @@ -65,88 +67,71 @@ Veuillez éditer le fichier .pman.conf" } function _ensure_base_branch() { - [ -n "${!PMAN_BASE_BRANCH}" ] || die "\ + [ -n "$PmanBaseBranch" ] || die "\ La branche $PMAN_BASE_BRANCH n'a pas été définie. Veuillez éditer le fichier .pman.conf" - [ "$1" == init -o -n "$IfCreateBase" ] || die "${!PMAN_BASE_BRANCH}: cette branche n'existe pas (le dépôt a-t-il été initialisé?)" -} - -function _ensure_merge_src() { - [ -n "$PmanMergeSrc" ] || die "\ -La branche $PMAN_MERGE_SRC n'a pas été définie. -Veuillez éditer le fichier .pman.conf" - [ "$1" == init -o -n "$IfMergeSrc" ] || die "$PmanMergeSrc: cette branche n'existe pas (le dépôt a-t-il été initialisé?)" -} - -function _ensure_merge_dest() { - [ -n "$PmanMergeDest" ] || die "\ -La branche $PMAN_MERGE_DEST n'a pas été définie. -Veuillez éditer le fichier .pman.conf" - [ "$1" == init -o -n "$IfMergeDest" ] || die "$PmanMergeDest: cette branche n'existe pas (le dépôt a-t-il été initialisé?)" + [ "$1" == init -o -n "$IfBaseBranch" ] || die "$PmanBaseBranch: cette branche n'existe pas (le dépôt a-t-il été initialisé?)" } function checkout_action() { local -a push_branches - [ -n "$PMAN_UNIQUE" ] || resolve_unique_branch "$@" || die - _ensure_branch init + [ -n "$PMAN_UNIQUE" ] || resolve_unique_branch "$@" + _ensure_ref_branch init - if [ -n "$IfRefBranch" ]; then - git checkout "$IfRefBranch" - elif array_contains LocalBranches "$PmanRefBranch"; then + #if [ -n "$IfRefBranch" ]; then + # git checkout "$IfRefBranch" + #el + if array_contains LocalBranches "$PmanRefBranch"; then git checkout "$PmanRefBranch" elif array_contains AllBranches "$PmanRefBranch"; then enote "$PmanRefBranch: une branche du même nom existe dans l'origine" ask_yesno "Voulez-vous basculer sur cette branche?" O || die git checkout "$PmanRefBranch" - elif [ -n "$PMAN_BASE_BRANCH" ]; then + else _ensure_base_branch - resolve_should_push - local SrcBranch="${!PMAN_BASE_BRANCH}" DestBranch="$PmanRefBranch" - enote "Vous allez créer la branche ${COULEUR_BLEUE}$DestBranch${COULEUR_NORMALE} <-- ${COULEUR_ROUGE}$SrcBranch${COULEUR_NORMALE}" + enote "Vous allez créer la branche ${COULEUR_BLEUE}$PmanRefBranch${COULEUR_NORMALE} <-- ${COULEUR_ROUGE}$PmanBaseBranch${COULEUR_NORMALE}" ask_yesno "Voulez-vous continuer?" O || die - einfo "Création de la branche $DestBranch" - git checkout -b "$DestBranch" "$SrcBranch" || die - push_branches+=("$DestBranch") + einfo "Création de la branche $PmanRefBranch" + git checkout -b "$PmanRefBranch" "$PmanBaseBranch" || die + push_branches+=("$PmanRefBranch") _push_branches fi } -#XXXX -#[ -n "$PmanMergeSrc" ] || -# die "Aucune branche définie pour $PMAN_MERGE_SRC. Veuillez éditer le fichier .pman.conf" function ensure_merge_branches() { - [ -n "$PMAN_CAN_MERGE" ] || - die "$PmanRefBranch: Aucune configuration de fusion trouvée pour cette branche" + [ -n "$PmanMergeSrc" ] || die "\ +$PmanRefBranch: configuration de fusion non trouvée: la branche $PMAN_MERGE_SRC n'a pas été définie. +Veuillez éditer le fichier .pman.conf" + [ -n "$PmanMergeDest" ] || die "\ +$PmanRefBranch: configuration de fusion non trouvée: la branche $PMAN_MERGE_DEST n'a pas été définie. +Veuillez éditer le fichier .pman.conf" local branches [ "$1" == -a ] && branches=AllBranches || branches=LocalBranches - - SrcBranch="$PmanMergeSrc" - array_contains "$branches" "$SrcBranch" || die "$SrcBranch: branche source introuvable" - DestBranch="$PmanMergeDest" - array_contains "$branches" "$DestBranch" || die "$DestBranch: branche destination introuvable" + array_contains "$branches" "$PmanMergeSrc" || die "$PmanMergeSrc: branche source introuvable" + array_contains "$branches" "$PmanMergeDest" || die "$PmanMergeDest: branche destination introuvable" } function _show_action() { local commits - setx commits=_list_commits + setx commits=_list_commits "$PmanMergeSrc" "$PmanMergeDest" if [ -n "$commits" ]; then if [ $ShowLevel -ge 2 ]; then { echo "\ -# Commits à fusionner $SrcBranch --> $DestBranch +# Commits à fusionner $PmanMergeSrc --> $PmanMergeDest $commits " _sd_COLOR=always _show_diff } | less -eRF else - einfo "Commits à fusionner $SrcBranch --> $DestBranch" + einfo "Commits à fusionner $PmanMergeSrc --> $PmanMergeDest" eecho "$commits" fi fi @@ -154,6 +139,7 @@ $commits function show_action() { git_check_cleancheckout || ewarn "$git_cleancheckout_DIRTY" + [ -n "$PMAN_UNIQUE" ] || resolve_unique_branch "$@" ensure_merge_branches _show_action "$@" } @@ -161,7 +147,7 @@ function show_action() { function _merge_action() { enote "\ Ce script va -- fusionner la branche ${COULEUR_BLEUE}$SrcBranch${COULEUR_NORMALE} dans ${COULEUR_ROUGE}$DestBranch${COULEUR_NORMALE}${Push:+ +- fusionner la branche ${COULEUR_BLEUE}$PmanMergeSrc${COULEUR_NORMALE} dans ${COULEUR_ROUGE}$PmanMergeDest${COULEUR_NORMALE}${Push:+ - pousser les branches modifiées}" ask_yesno "Voulez-vous continuer?" O || die @@ -269,31 +255,35 @@ Il y a aussi les commandes supplémentaires suivantes: } function merge_action() { - [ -n "$PMAN_UNIQUE" ] || resolve_unique_branch "$@" || die + [ -n "$PMAN_UNIQUE" ] || resolve_unique_branch "$@" ensure_merge_branches -a if [ -n "$PMAN_PREL_MERGE" ]; then - [ -n "$ForceMerge" ] || die "$SrcBranch: cette branche doit être fusionnée dans $DestBranch avec prel" + [ -n "$ForceMerge" ] || die "$PmanMergeSrc: cette branche doit être fusionnée dans $PmanMergeDest avec prel" + fi + if [ -n "$PMAN_DELETE_MERGED" ]; then + ShouldDelete=1 + [ -n "$AfterMerge" ] || setx AfterMerge=qvals git checkout -q "$PmanMergeDest" + else + ShouldDelete= + Delete= + [ -n "$AfterMerge" ] || setx AfterMerge=qvals git checkout -q "$PmanMergeSrc" fi - [ -n "$AfterMerge" ] || setx AfterMerge=qvals git checkout -q "$SrcBranch" - [ -n "$PMAN_DELETE_MERGED" ] || Delete= [ -z "$_Fake" ] && git_ensure_cleancheckout - if ! array_contains LocalBranches "$SrcBranch" && array_contains AllBranches "$SrcBranch"; then - enote "$SrcBranch: une branche du même nom existe dans l'origine" + if ! array_contains LocalBranches "$PmanMergeSrc" && array_contains AllBranches "$PmanMergeSrc"; then + enote "$PmanMergeSrc: une branche du même nom existe dans l'origine" fi - if ! array_contains LocalBranches "$DestBranch" && array_contains AllBranches "$DestBranch"; then - enote "$DestBranch: une branche du même nom existe dans l'origine" + if ! array_contains LocalBranches "$PmanMergeDest" && array_contains AllBranches "$PmanMergeDest"; then + enote "$PmanMergeDest: une branche du même nom existe dans l'origine" fi - array_contains LocalBranches "$SrcBranch" || die "$SrcBranch: branche locale introuvable" - array_contains LocalBranches "$DestBranch" || die "$DestBranch: branche locale introuvable" + array_contains LocalBranches "$PmanMergeSrc" || die "$PmanMergeSrc: branche locale introuvable" + array_contains LocalBranches "$PmanMergeDest" || die "$PmanMergeDest: branche locale introuvable" resolve_should_push - set -x #XXX _merge_action "$@" } function rebase_action() { die "non implémenté" } - diff --git a/bash/src/pman74.conf.sh b/bash/src/pman74.conf.sh index f179165..6796315 100644 --- a/bash/src/pman74.conf.sh +++ b/bash/src/pman74.conf.sh @@ -1,9 +1,5 @@ # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 -## configuration de la branche 7.4 d'un projet PHP multiversion -# il s'agit d'un projet avec deux branches parallèles: 7.4 et 8.2, les -# modifications de la 7.4 étant incluses dans la branche 8.2 - UPSTREAM= DEVELOP=dev74 FEATURE=wip74/ diff --git a/bash/src/pman82.conf.sh b/bash/src/pman82.conf.sh index 85262bc..4cf9e2b 100644 --- a/bash/src/pman82.conf.sh +++ b/bash/src/pman82.conf.sh @@ -1,9 +1,5 @@ # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 -## configuration de la branche 8.2 d'un projet PHP multiversion -# il s'agit d'un projet avec deux branches parallèles: 7.4 et 8.2, les -# modifications de la 7.4 étant incluses dans la branche 8.2 - UPSTREAM=dev74 DEVELOP=dev82 FEATURE=wip82/ diff --git a/wip/_pman.tool b/wip/_pman.tool index e26613a..5782f54 100755 --- a/wip/_pman.tool +++ b/wip/_pman.tool @@ -8,13 +8,8 @@ if check_gitdir; then load_branches all load_config set_pman_vars - if [ -n "$PmanMergeSrc" ]; then - load_branches current "$PmanMergeSrc" - loaded_config=1 - elif [ -n "$PmanRefBranch" ]; then - load_branches current "$PmanRefBranch" - loaded_config=1 - fi + load_branches current + loaded_config=1 else set_pman_vars fi @@ -78,23 +73,15 @@ c'est l'option par défaut" ) fi -if [ -n "$PMAN_CAN_MERGE" ]; then +if [ -n "$PMAN_MERGE_SRC" -a -n "$PMAN_MERGE_DEST" ]; then if [ -n "$PMAN_UNIQUE" ]; then usage="${usage}|--show|--merge" else usage="${usage} $PMAN_REF_BRANCH --show|--merge" fi - if [ "$PMAN_REF_BRANCH" != "$PMAN_MERGE_SRC" ]; then - usage="$usage - -NB: du fait de la configuration des branches, la fusion se fait dans le sens -inverse $MergeSrcDesc --> $MergeDestDesc" - else - usage="$usage - -NB: La fusion se fait dans le sens $MergeSrcDesc --> $MergeDestDesc" - fi + [ "$PMAN_REF_BRANCH" != "$PMAN_MERGE_SRC" ] && bewareDir=" +NB: la fusion se fait dans le sens inverse" || bewareDir= variables="\ Les variables supplémentaires suivantes peuvent être définies: BEFORE_MERGE_${PMAN_MERGE_SRC} @@ -106,7 +93,7 @@ lister ce qui serait fusionné dans la branche $MergeDestDesc" #lancer git rebase -i sur la branche $MergeSrcDesc. cela permet de réordonner #les commits pour nettoyer l'historique avant la fusion" -m,--merge action=merge "\ -fusionner la branche $MergeSrcDesc dans la branche $MergeDestDesc" +fusionner la branche $MergeSrcDesc dans la branche $MergeDestDesc$bewareDir" --tech-merge TechMerge=1 "++option non documentée" -s:,--squash:COMMIT_MSG SquashMsg= "\ fusionner les modifications de la branche comme un seul commit" @@ -180,11 +167,7 @@ if [ -z "$loaded_config" -o -n "$chdir" -o -n "$ConfigFile" -o -n "$ConfigBranch load_branches all load_config set_pman_vars - if [ -n "$PmanMergeSrc" ]; then - load_branches current "$PmanMergeSrc" - elif [ -n "$PmanRefBranch" ]; then - load_branches current "$PmanRefBranch" - fi + load_branches current fi resolve_should_push quiet diff --git a/wip/pinit b/wip/pinit index ce6361a..6bb51d0 100755 --- a/wip/pinit +++ b/wip/pinit @@ -170,7 +170,8 @@ ne pas pousser les branches vers leur origine après leur création" pousser les branches vers leur origine après leur création. c'est l'option par défaut" -f,--force-create ForceCreate=1 "\ -Avec config, forcer la (re)création du fichier .pman.conf" +Forcer la (re)création des fichiers de configuration (notamment .pman.conf, +.composer.pman.yml, etc.)" ) parse_args "$@"; set -- "${args[@]}"