cosmetic
This commit is contained in:
		
							parent
							
								
									bf4d934daa
								
							
						
					
					
						commit
						aa9b870159
					
				
							
								
								
									
										219
									
								
								bash/src/pman.sh
									
									
									
									
									
								
							
							
						
						
									
										219
									
								
								bash/src/pman.sh
									
									
									
									
									
								
							| @ -72,95 +72,93 @@ function get_merge_to_branch() { | ||||
| function should_prel_merge() { | ||||
|     # tester si la branche $1 doit être mergée avec prel dans la direction | ||||
|     # $2(=to) | ||||
|     local branch="$1" dir="${2:-to}" infos | ||||
|     local branch="$1" merge_dir="${2:-to}" infos | ||||
|     [ -n "$branch" ] || return 1 | ||||
|     infos="${branch^^}_PREL" | ||||
|     [ "${!infos}" == "$dir" ] | ||||
|     [ "${!infos}" == "$merge_dir" ] | ||||
| } | ||||
| 
 | ||||
| function should_delete_merged() { | ||||
|     # tester si la branche $1 doit être supprimée après avoir été mergée dans la | ||||
|     # direction $2(=to) | ||||
|     local branch="$1" dir="${2:-to}" infos | ||||
|     local branch="$1" merge_dir="${2:-to}" infos | ||||
|     [ -n "$branch" ] || return 1 | ||||
|     infos="${branch^^}_DELETE" | ||||
|     [ "${!infos}" == "$dir" ] | ||||
|     [ "${!infos}" == "$merge_dir" ] | ||||
| } | ||||
| 
 | ||||
| : " | ||||
| # description des variables # | ||||
| 
 | ||||
| * PMAN_TOOL -- nom de l'outil, e.g pdev, pmain, pdist | ||||
| 
 | ||||
| * PMAN_REF_BRANCH -- code de la branche de référence basé sur le nom de l'outil | ||||
| * PmanRefBranch -- nom effectif de la branche si elle est définie dans | ||||
| * REF_BRANCH -- code de la branche de référence basé sur le nom de l'outil | ||||
| * RefBranch -- nom effectif de la branche si elle est définie dans | ||||
|   .pman.conf, vide sinon | ||||
| * IfRefBranch -- nom effectif de la branche *si elle existe*, vide sinon | ||||
| 
 | ||||
| * PMAN_UNIQUE -- si la branche de référence est unique. est vide pour les | ||||
| * REF_UNIQUE -- si la branche de référence est unique. est vide pour les | ||||
|   codes de branches multiples, telle que FEATURE | ||||
| 
 | ||||
| * PMAN_BASE_BRANCH -- branche de base à partir de laquelle créer la branche | ||||
| * BASE_BRANCH -- branche de base à partir de laquelle créer la branche | ||||
|   de référence | ||||
| * PmanBaseBranch -- nom effectif de la branche de base si elle est définie | ||||
| * BaseBranch -- nom effectif de la branche de base si elle est définie | ||||
|   dans .pman.conf, vide sinon | ||||
| * IfBaseBranch -- nom effectif de la branche de base *si elle existe*, vide | ||||
|   sinon | ||||
| 
 | ||||
| * PMAN_MERGE_FROM -- code de la branche source à partir de laquelle la fusion | ||||
|   est faite dans PMAN_REF_BRANCH. vide si la branche n'a pas de source | ||||
| * PMAN_MERGE_TO -- code de la branche destination dans laquelle la fusion est | ||||
|   faite depuis PMAN_REF_BRANCH. vide si la branche n'a pas de destination | ||||
| * PMAN_DIR -- direction de la fusion: | ||||
|   'from' si on fait PMAN_REF_BRANCH --> PMAN_MERGE_TO | ||||
|   'to' si on fait PMAN_MERGE_FROM --> PMAN_REF_BRANCH | ||||
| * PMAN_PREL_MERGE -- si la fusion devrait se faire avec prel | ||||
| * PMAN_DELETE_MERGED -- s'il faut supprimer la branche source après la fusion | ||||
| * MERGE_FROM -- code de la branche source à partir de laquelle la fusion | ||||
|   est faite dans REF_BRANCH. vide si la branche n'a pas de source | ||||
| * MERGE_TO -- code de la branche destination dans laquelle la fusion est | ||||
|   faite depuis REF_BRANCH. vide si la branche n'a pas de destination | ||||
| * MERGE_DIR -- direction de la fusion: | ||||
|   'from' si on fait REF_BRANCH --> MERGE_TO | ||||
|   'to' si on fait MERGE_FROM --> REF_BRANCH | ||||
| * PREL_MERGE -- si la fusion devrait se faire avec prel | ||||
| * DELETE_MERGED -- s'il faut supprimer la branche source après la fusion | ||||
| 
 | ||||
| * PMAN_MERGE_SRC -- code de la branche source pour la fusion, ou vide si la | ||||
| * MERGE_SRC -- code de la branche source pour la fusion, ou vide si la | ||||
|   fusion n'est pas possible | ||||
| * PmanMergeSrc -- nom effectif de la branche source si elle est définie | ||||
| * MergeSrc -- nom effectif de la branche source si elle est définie | ||||
|   dans .pman.conf | ||||
| * IfMergeSrc -- nom effectif de la branche source *si elle existe*, vide | ||||
|   sinon | ||||
| 
 | ||||
| * PMAN_MERGE_DEST -- code de la branche destination pour la fusion, ou vide si | ||||
| * MERGE_DEST -- code de la branche destination pour la fusion, ou vide si | ||||
|   la fusion n'est pas possible | ||||
| * PmanMergeDest -- nom effectif de la branche destination si elle est | ||||
| * MergeDest -- 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" | ||||
| 
 | ||||
| function set_pman_vars() { | ||||
|     PmanRefBranch="${!PMAN_REF_BRANCH}" | ||||
|     case "$PMAN_REF_BRANCH" in | ||||
|     FEATURE|RELEASE|HOTFIX) PMAN_UNIQUE=;; | ||||
|     *) PMAN_UNIQUE=1;; | ||||
|     RefBranch="${!REF_BRANCH}" | ||||
|     case "$REF_BRANCH" in | ||||
|     FEATURE|RELEASE|HOTFIX) REF_UNIQUE=;; | ||||
|     *) REF_UNIQUE=1;; | ||||
|     esac | ||||
| 
 | ||||
|     PMAN_BASE_BRANCH=$(get_base_branch "$PMAN_REF_BRANCH") | ||||
|     [ -n "$PMAN_BASE_BRANCH" ] && PmanBaseBranch="${!PMAN_BASE_BRANCH}" || PmanBaseBranch= | ||||
|     BASE_BRANCH=$(get_base_branch "$REF_BRANCH") | ||||
|     [ -n "$BASE_BRANCH" ] && BaseBranch="${!BASE_BRANCH}" || BaseBranch= | ||||
| 
 | ||||
|     PMAN_MERGE_FROM=$(get_merge_from_branch "$PMAN_REF_BRANCH") | ||||
|     PMAN_MERGE_TO=$(get_merge_to_branch "$PMAN_REF_BRANCH") | ||||
|     if [ -n "$1" ]; then PMAN_DIR="$1" | ||||
|     else PMAN_DIR=from | ||||
|     MERGE_FROM=$(get_merge_from_branch "$REF_BRANCH") | ||||
|     MERGE_TO=$(get_merge_to_branch "$REF_BRANCH") | ||||
|     if [ -n "$1" ]; then MERGE_DIR="$1" | ||||
|     else MERGE_DIR=from | ||||
|     fi | ||||
|     PMAN_PREL_MERGE=$(should_prel_merge "$PMAN_REF_BRANCH" "$PMAN_DIR" && echo 1) | ||||
|     PMAN_DELETE_MERGED=$(should_delete_merged "$PMAN_REF_BRANCH" "$PMAN_DIR" && echo 1) | ||||
|     case "$PMAN_DIR" in | ||||
|     PREL_MERGE=$(should_prel_merge "$REF_BRANCH" "$MERGE_DIR" && echo 1) | ||||
|     DELETE_MERGED=$(should_delete_merged "$REF_BRANCH" "$MERGE_DIR" && echo 1) | ||||
|     case "$MERGE_DIR" in | ||||
|     from) | ||||
|         PMAN_MERGE_SRC="$PMAN_REF_BRANCH" | ||||
|         PMAN_MERGE_DEST="$PMAN_MERGE_TO" | ||||
|         MERGE_SRC="$REF_BRANCH" | ||||
|         MERGE_DEST="$MERGE_TO" | ||||
|         ;; | ||||
|     to) | ||||
|         PMAN_MERGE_SRC="$PMAN_MERGE_FROM" | ||||
|         PMAN_MERGE_DEST="$PMAN_REF_BRANCH" | ||||
|         MERGE_SRC="$MERGE_FROM" | ||||
|         MERGE_DEST="$REF_BRANCH" | ||||
|         ;; | ||||
|     esac | ||||
| 
 | ||||
|     [ -n "$PMAN_MERGE_SRC" ] && PmanMergeSrc="${!PMAN_MERGE_SRC}" || PmanMergeSrc= | ||||
|     [ -n "$PMAN_MERGE_DEST" ] && PmanMergeDest="${!PMAN_MERGE_DEST}" || PmanMergeDest= | ||||
|     [ -n "$MERGE_SRC" ] && MergeSrc="${!MERGE_SRC}" || MergeSrc= | ||||
|     [ -n "$MERGE_DEST" ] && MergeDest="${!MERGE_DEST}" || MergeDest= | ||||
| } | ||||
| 
 | ||||
| ################################################################################ | ||||
| @ -214,7 +212,7 @@ $1 == "|" { | ||||
| } | ||||
| 
 | ||||
| function _list_commits() { | ||||
|     local source="${1:-$PmanMergeSrc}" dest="${2:-$PmanMergeDest}" mergebase | ||||
|     local source="${1:-$MergeSrc}" dest="${2:-$MergeDest}" mergebase | ||||
|     setx mergebase=git merge-base "$dest" "$source" | ||||
|     git log --oneline --graph --no-decorate "$mergebase..$source" | | ||||
|         grep -vF '|\' | grep -vF '|/' | sed -r 's/^(\| )+\* +/| /; s/^\* +/+ /' | | ||||
| @ -222,7 +220,7 @@ function _list_commits() { | ||||
| } | ||||
| 
 | ||||
| function _show_diff() { | ||||
|     local source="${1:-$PmanMergeSrc}" dest="${2:-$PmanMergeDest}" mergebase | ||||
|     local source="${1:-$MergeSrc}" dest="${2:-$MergeDest}" mergebase | ||||
|     setx mergebase=git merge-base "$dest" "$source" | ||||
|     git diff ${_sd_COLOR:+--color=$_sd_COLOR} "$mergebase..$source" | ||||
| } | ||||
| @ -341,10 +339,10 @@ function load_branches() { | ||||
|             elif [ -n "$DIST" -a "$branch" == "$DIST" ]; then | ||||
|                 DistBranch="$branch" | ||||
|             fi | ||||
|             [ -n "$PmanRefBranch" -a "$branch" == "$PmanRefBranch" ] && IfRefBranch="$branch" | ||||
|             [ -n "$PmanBaseBranch" -a "$branch" == "$PmanBaseBranch" ] && IfBaseBranch="$branch" | ||||
|             [ -n "$PmanMergeSrc" -a "$branch" == "$PmanMergeSrc" ] && IfMergeSrc="$branch" | ||||
|             [ -n "$PmanMergeDest" -a "$branch" == "$PmanMergeDest" ] && IfMergeDest="$branch" | ||||
|             [ -n "$RefBranch" -a "$branch" == "$RefBranch" ] && IfRefBranch="$branch" | ||||
|             [ -n "$BaseBranch" -a "$branch" == "$BaseBranch" ] && IfBaseBranch="$branch" | ||||
|             [ -n "$MergeSrc" -a "$branch" == "$MergeSrc" ] && IfMergeSrc="$branch" | ||||
|             [ -n "$MergeDest" -a "$branch" == "$MergeDest" ] && IfMergeDest="$branch" | ||||
|         done | ||||
|         [ -n "$IfMergeSrc" -a "$IfMergeDest" ] && IfCanMerge=1 || IfCanMerge= | ||||
|         ;; | ||||
| @ -443,8 +441,8 @@ function _mscript_start() { | ||||
| #!/bin/bash | ||||
| $(qvals source "$NULIBDIR/load.sh") || exit 1 | ||||
| 
 | ||||
| $(echo_setv SrcBranch="$PmanMergeSrc") | ||||
| $(echo_setv DestBranch="$PmanMergeDest") | ||||
| $(echo_setv MergeSrc="$MergeSrc") | ||||
| $(echo_setv MergeDest="$MergeDest") | ||||
| 
 | ||||
| merge= | ||||
| delete= | ||||
| @ -464,32 +462,32 @@ function _mscript_merge_branch() { | ||||
|     local msg | ||||
| 
 | ||||
|     # basculer sur la branche | ||||
|     _scripta "switch to branch $PmanMergeDest" <<EOF | ||||
| $comment$(qvals git checkout "$PmanMergeDest")$or_die | ||||
|     _scripta "switch to branch $MergeDest" <<EOF | ||||
| $comment$(qvals git checkout "$MergeDest")$or_die | ||||
| EOF | ||||
| 
 | ||||
|     if [ -n "$SquashMsg" ]; then | ||||
|         msg="$SquashMsg" | ||||
|         [ -n "$TechMerge" ] && msg="<pman>$msg" | ||||
|         _scripta "squash merge $PmanMergeSrc" <<EOF | ||||
| $comment$(qvals git merge "$PmanMergeSrc" --squash)$or_die | ||||
|         _scripta "squash merge $MergeSrc" <<EOF | ||||
| $comment$(qvals git merge "$MergeSrc" --squash)$or_die | ||||
| $comment$(qvals git commit -m "$msg")$or_die | ||||
| EOF | ||||
|     else | ||||
|         msg="Intégration de la branche $PmanMergeSrc" | ||||
|         msg="Intégration de la branche $MergeSrc" | ||||
|         [ -n "$TechMerge" ] && msg="<pman>$msg" | ||||
|         _scripta "merge $PmanMergeSrc" <<EOF | ||||
| $comment$(qvals git merge "$PmanMergeSrc" --no-ff -m "$msg")$or_die | ||||
|         _scripta "merge $MergeSrc" <<EOF | ||||
| $comment$(qvals git merge "$MergeSrc" --no-ff -m "$msg")$or_die | ||||
| EOF | ||||
|     fi | ||||
|     array_addu push_branches "$PmanMergeDest" | ||||
|     array_addu push_branches "$MergeDest" | ||||
| } | ||||
| 
 | ||||
| function _mscript_delete_branch() { | ||||
|     _scripta "delete branch $PmanMergeSrc" <<EOF | ||||
| $comment$(qvals git branch -D "$PmanMergeSrc")$or_die | ||||
|     _scripta "delete branch $MergeSrc" <<EOF | ||||
| $comment$(qvals git branch -D "$MergeSrc")$or_die | ||||
| EOF | ||||
|     array_addu delete_branches ":$PmanMergeSrc" | ||||
|     array_addu delete_branches ":$MergeSrc" | ||||
| } | ||||
| 
 | ||||
| ################################################################################ | ||||
| @ -501,11 +499,11 @@ function _rscript_start() { | ||||
| #!/bin/bash | ||||
| $(qvals source "$NULIBDIR/load.sh") || exit 1 | ||||
| 
 | ||||
| $(echo_setv SrcBranch="$PmanMergeSrc") | ||||
| $(echo_setv MergeSrc="$MergeSrc") | ||||
| $(echo_setv Version="$Version") | ||||
| $(echo_setv Tag="$Tag") | ||||
| $(echo_setv ReleaseBranch="$ReleaseBranch") | ||||
| $(echo_setv DestBranch="$PmanMergeDest") | ||||
| $(echo_setv MergeDest="$MergeDest") | ||||
| 
 | ||||
| create= | ||||
| merge= | ||||
| @ -534,7 +532,7 @@ function _rscript_create_release_branch() { | ||||
| 
 | ||||
|     # créer la branche de release et basculer dessus | ||||
|     _scripta "create branch $ReleaseBranch" <<EOF | ||||
| $(qvals git checkout -b "$ReleaseBranch" "$PmanMergeSrc")$or_die | ||||
| $(qvals git checkout -b "$ReleaseBranch" "$MergeSrc")$or_die | ||||
| EOF | ||||
| 
 | ||||
|     # créer le changelog | ||||
| @ -600,16 +598,15 @@ EOF | ||||
| 
 | ||||
| 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 IfBaseBranch=$IfBaseBranch} | ||||
| PMAN_MERGE_FROM=$PMAN_MERGE_FROM | ||||
| PMAN_MERGE_TO=$PMAN_MERGE_TO | ||||
| PMAN_DIR=$PMAN_DIR | ||||
| 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} | ||||
| REF_BRANCH=$REF_BRANCH${RefBranch:+ RefBranch=$RefBranch IfRefBranch=$IfRefBranch} | ||||
| BASE_BRANCH=$BASE_BRANCH${BaseBranch:+ BaseBranch=$BaseBranch IfBaseBranch=$IfBaseBranch} | ||||
| MERGE_FROM=$MERGE_FROM | ||||
| MERGE_TO=$MERGE_TO | ||||
| MERGE_DIR=$MERGE_DIR | ||||
| PREL_MERGE=$PREL_MERGE | ||||
| DELETE_MERGED=$DELETE_MERGED | ||||
| MERGE_SRC=$MERGE_SRC${MergeSrc:+ MergeSrc=$MergeSrc IfMergeSrc=$IfMergeSrc} | ||||
| MERGE_DEST=$MERGE_DEST${MergeDest:+ MergeDest=$MergeDest IfMergeDest=$IfMergeDest} | ||||
| 
 | ||||
| CurrentBranch=$CurrentBranch | ||||
| LocalBranches=${LocalBranches[*]} | ||||
| @ -627,105 +624,105 @@ DistBranch=$DistBranch | ||||
| } | ||||
| 
 | ||||
| function resolve_unique_branch() { | ||||
|     if [ "$PMAN_REF_BRANCH" == FEATURE ]; then | ||||
|     if [ "$REF_BRANCH" == FEATURE ]; then | ||||
|         if [ $# -gt 0 ]; then | ||||
|             PmanRefBranch="$FEATURE${1#$FEATURE}" | ||||
|             RefBranch="$FEATURE${1#$FEATURE}" | ||||
|         elif [[ "$CurrentBranch" == "$FEATURE"* ]]; then | ||||
|             PmanRefBranch="$CurrentBranch" | ||||
|             RefBranch="$CurrentBranch" | ||||
|         elif [ ${#FeatureBranches[*]} -eq 0 ]; then | ||||
|             die "Vous devez spécifier la branche de feature" | ||||
|         elif [ ${#FeatureBranches[*]} -eq 1 ]; then | ||||
|             PmanRefBranch="${FeatureBranches[0]}" | ||||
|             RefBranch="${FeatureBranches[0]}" | ||||
|         else | ||||
|             simple_menu \ | ||||
|                 PmanRefBranch FeatureBranches \ | ||||
|                 RefBranch 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é" | ||||
|         die "resolve_unique_branch: $REF_BRANCH: non implémenté" | ||||
|     fi | ||||
|     if [ "$PMAN_DIR" == from ]; then | ||||
|         PmanMergeSrc="$PmanRefBranch" | ||||
|     elif [ "$PMAN_DIR" == to ]; then | ||||
|         PmanMergeDest="$PmanRefBranch" | ||||
|     if [ "$MERGE_DIR" == from ]; then | ||||
|         MergeSrc="$RefBranch" | ||||
|     elif [ "$MERGE_DIR" == to ]; then | ||||
|         MergeDest="$RefBranch" | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| function _ensure_ref_branch() { | ||||
|     [ -n "$PmanRefBranch" ] || die "\ | ||||
| La branche $PMAN_REF_BRANCH n'a pas été définie. | ||||
|     [ -n "$RefBranch" ] || die "\ | ||||
| La branche $REF_BRANCH n'a pas été définie. | ||||
| Veuillez éditer le fichier .pman.conf" | ||||
|     [ "$1" == init -o -n "$IfRefBranch" ] || die "$PmanRefBranch: cette branche n'existe pas (le dépôt a-t-il été initialisé?)" | ||||
|     [ "$1" == init -o -n "$IfRefBranch" ] || die "$RefBranch: cette branche n'existe pas (le dépôt a-t-il été initialisé?)" | ||||
| } | ||||
| 
 | ||||
| function _ensure_base_branch() { | ||||
|     [ -n "$PmanBaseBranch" ] || die "\ | ||||
| La branche $PMAN_BASE_BRANCH n'a pas été définie. | ||||
|     [ -n "$BaseBranch" ] || die "\ | ||||
| La branche $BASE_BRANCH n'a pas été définie. | ||||
| Veuillez éditer le fichier .pman.conf" | ||||
|     [ "$1" == init -o -n "$IfBaseBranch" ] || die "$PmanBaseBranch: 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 checkout_action() { | ||||
|     local -a push_branches | ||||
| 
 | ||||
|     [ -n "$PMAN_UNIQUE" ] || resolve_unique_branch "$@" | ||||
|     [ -n "$REF_UNIQUE" ] || resolve_unique_branch "$@" | ||||
|     _ensure_ref_branch init | ||||
| 
 | ||||
|     #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" | ||||
|     if array_contains LocalBranches "$RefBranch"; then | ||||
|         git checkout "$RefBranch" | ||||
|     elif array_contains AllBranches "$RefBranch"; then | ||||
|         enote "$RefBranch: une branche du même nom existe dans l'origine" | ||||
|         ask_yesno "Voulez-vous basculer sur cette branche?" O || die | ||||
|         git checkout "$PmanRefBranch" | ||||
|         git checkout "$RefBranch" | ||||
|     else | ||||
|         _ensure_base_branch | ||||
|         resolve_should_push | ||||
| 
 | ||||
|         enote "Vous allez créer la branche ${COULEUR_BLEUE}$PmanRefBranch${COULEUR_NORMALE} <-- ${COULEUR_ROUGE}$PmanBaseBranch${COULEUR_NORMALE}" | ||||
|         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 $PmanRefBranch" | ||||
|         git checkout -b "$PmanRefBranch" "$PmanBaseBranch" || die | ||||
|         push_branches+=("$PmanRefBranch") | ||||
|         einfo "Création de la branche $RefBranch" | ||||
|         git checkout -b "$RefBranch" "$BaseBranch" || die | ||||
|         push_branches+=("$RefBranch") | ||||
| 
 | ||||
|         _push_branches | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| function ensure_merge_branches() { | ||||
|     [ -n "$PmanMergeSrc" ] || die "\ | ||||
| $PmanRefBranch: configuration de fusion non trouvée: la branche $PMAN_MERGE_SRC n'a pas été définie. | ||||
|     [ -n "$MergeSrc" ] || die "\ | ||||
| $RefBranch: configuration de fusion non trouvée: la branche $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. | ||||
|     [ -n "$MergeDest" ] || die "\ | ||||
| $RefBranch: configuration de fusion non trouvée: la branche $MERGE_DEST n'a pas été définie. | ||||
| Veuillez éditer le fichier .pman.conf" | ||||
| 
 | ||||
|     local branches | ||||
|     [ "$1" == -a ] && branches=AllBranches || branches=LocalBranches | ||||
|     array_contains "$branches" "$PmanMergeSrc" || die "$PmanMergeSrc: branche source introuvable" | ||||
|     array_contains "$branches" "$PmanMergeDest" || die "$PmanMergeDest: branche destination introuvable" | ||||
|     array_contains "$branches" "$MergeSrc" || die "$MergeSrc: branche source introuvable" | ||||
|     array_contains "$branches" "$MergeDest" || die "$MergeDest: branche destination introuvable" | ||||
| } | ||||
| 
 | ||||
| function _show_action() { | ||||
|     local commits | ||||
|     setx commits=_list_commits "$PmanMergeSrc" "$PmanMergeDest" | ||||
|     setx commits=_list_commits "$MergeSrc" "$MergeDest" | ||||
|     if [ -n "$commits" ]; then | ||||
|         if [ $ShowLevel -ge 2 ]; then | ||||
|             { | ||||
|                 echo "\ | ||||
| # Commits à fusionner $PmanMergeSrc --> $PmanMergeDest | ||||
| # Commits à fusionner $MergeSrc --> $MergeDest | ||||
| 
 | ||||
| $commits | ||||
| " | ||||
|                 _sd_COLOR=always _show_diff | ||||
|             } | less -eRF | ||||
|         else | ||||
|             einfo "Commits à fusionner $PmanMergeSrc --> $PmanMergeDest" | ||||
|             einfo "Commits à fusionner $MergeSrc --> $MergeDest" | ||||
|             eecho "$commits" | ||||
|         fi | ||||
|     fi | ||||
| @ -733,7 +730,7 @@ $commits | ||||
| 
 | ||||
| function show_action() { | ||||
|     git_check_cleancheckout || ewarn "$git_cleancheckout_DIRTY" | ||||
|     [ -n "$PMAN_UNIQUE" ] || resolve_unique_branch "$@" | ||||
|     [ -n "$REF_UNIQUE" ] || resolve_unique_branch "$@" | ||||
|     ensure_merge_branches | ||||
|     _show_action "$@" | ||||
| } | ||||
|  | ||||
							
								
								
									
										16
									
								
								bin/prel
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								bin/prel
									
									
									
									
									
								
							| @ -45,14 +45,14 @@ L'option --no-push a été forcée puisque ce dépôt n'a pas d'origine" | ||||
|     if [ -n "$Merge" ]; then | ||||
|         enote "\ | ||||
| Ce script va: | ||||
| - créer la branche de release ${COULEUR_VERTE}$ReleaseBranch${COULEUR_NORMALE} <-- ${COULEUR_BLEUE}$PmanMergeSrc${COULEUR_NORMALE} | ||||
| - créer la branche de release ${COULEUR_VERTE}$ReleaseBranch${COULEUR_NORMALE} <-- ${COULEUR_BLEUE}$MergeSrc${COULEUR_NORMALE} | ||||
| - la provisionner avec une description des changements | ||||
| - la fusionner dans la branche destination ${COULEUR_ROUGE}$PmanMergeDest${COULEUR_NORMALE}${Push:+ | ||||
| - la fusionner dans la branche destination ${COULEUR_ROUGE}$MergeDest${COULEUR_NORMALE}${Push:+ | ||||
| - pousser les branches modifiées}" | ||||
|     else | ||||
|         enote "\ | ||||
| Ce script va: | ||||
| - créer la branche de release ${COULEUR_VERTE}$ReleaseBranch${COULEUR_NORMALE} <-- ${COULEUR_BLEUE}$PmanMergeSrc${COULEUR_NORMALE} | ||||
| - créer la branche de release ${COULEUR_VERTE}$ReleaseBranch${COULEUR_NORMALE} <-- ${COULEUR_BLEUE}$MergeSrc${COULEUR_NORMALE} | ||||
| - la provisionner avec une description des changements | ||||
| Vous devrez: | ||||
| - mettre à jour les informations de release puis relancer ce script" | ||||
| @ -97,8 +97,8 @@ EOF | ||||
| $BEFORE_MERGE_RELEASE | ||||
| )$or_die | ||||
| EOF | ||||
|     _rscript_merge_release_branch "$PmanMergeDest" "$Tag" | ||||
|     _rscript_merge_release_branch "$PmanMergeSrc" | ||||
|     _rscript_merge_release_branch "$MergeDest" "$Tag" | ||||
|     _rscript_merge_release_branch "$MergeSrc" | ||||
|     _rscript_delete_release_branch | ||||
|     [ -n "$AFTER_MERGE_RELEASE" ] && _scripta <<EOF | ||||
| ( | ||||
| @ -157,14 +157,14 @@ function merge_release_action() { | ||||
|     enote "\ | ||||
| Vous allez: | ||||
| - fusionner la branche de release ${COULEUR_VERTE}$ReleaseBranch${COULEUR_NORMALE} | ||||
|   dans la branche destination ${COULEUR_ROUGE}$PmanMergeDest${COULEUR_NORMALE}" | ||||
|   dans la branche destination ${COULEUR_ROUGE}$MergeDest${COULEUR_NORMALE}" | ||||
|     ask_yesno "Voulez-vous continuer?" O || die | ||||
| } | ||||
| 
 | ||||
| function merge_hotfix_action() { | ||||
|     enote "\ | ||||
| Vous allez intégrer la branche de hotfix ${COULEUR_JAUNE}$HotfixBranch${COULEUR_NORMALE} | ||||
| dans la branche destination ${COULEUR_ROUGE}$PmanMergeDest${COULEUR_NORMALE}" | ||||
| dans la branche destination ${COULEUR_ROUGE}$MergeDest${COULEUR_NORMALE}" | ||||
|     ask_yesno "Voulez-vous continuer?" O || die | ||||
| } | ||||
| 
 | ||||
| @ -236,7 +236,7 @@ parse_args "$@"; set -- "${args[@]}" | ||||
| ensure_gitdir "$chdir" | ||||
| load_branches all | ||||
| load_config | ||||
| PMAN_REF_BRANCH=DEVELOP | ||||
| REF_BRANCH=DEVELOP | ||||
| set_pman_vars | ||||
| load_branches current | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										110
									
								
								bin/ptool
									
									
									
									
									
								
							
							
						
						
									
										110
									
								
								bin/ptool
									
									
									
									
									
								
							| @ -10,7 +10,7 @@ Enregistrez ces modifications avant de fusionner la branche" | ||||
| function _merge_action() { | ||||
|     enote "\ | ||||
| Ce script va | ||||
| - fusionner la branche ${COULEUR_BLEUE}$PmanMergeSrc${COULEUR_NORMALE} dans ${COULEUR_ROUGE}$PmanMergeDest${COULEUR_NORMALE}${Push:+ | ||||
| - fusionner la branche ${COULEUR_BLEUE}$MergeSrc${COULEUR_NORMALE} dans ${COULEUR_ROUGE}$MergeDest${COULEUR_NORMALE}${Push:+ | ||||
| - pousser les branches modifiées}" | ||||
|     ask_yesno "Voulez-vous continuer?" O || die | ||||
| 
 | ||||
| @ -27,13 +27,13 @@ Ce script va | ||||
| if [ -n "\$merge" ]; then | ||||
| esection "Fusionner la branche" | ||||
| EOF | ||||
|     hook="BEFORE_MERGE_$PMAN_MERGE_SRC"; [ -n "${!hook}" ] && _scripta <<EOF | ||||
|     hook="BEFORE_MERGE_$MERGE_SRC"; [ -n "${!hook}" ] && _scripta <<EOF | ||||
| ( | ||||
| ${!hook} | ||||
| )$or_die | ||||
| EOF | ||||
|     _mscript_merge_branch | ||||
|     hook="AFTER_MERGE_$PMAN_MERGE_SRC"; [ -n "${!hook}" ] && _scripta <<EOF | ||||
|     hook="AFTER_MERGE_$MERGE_SRC"; [ -n "${!hook}" ] && _scripta <<EOF | ||||
| ( | ||||
| ${!hook} | ||||
| )$or_die | ||||
| @ -50,7 +50,7 @@ if [ -n "\$delete" ]; then | ||||
| esection "Supprimer la branche" | ||||
| EOF | ||||
|         _mscript_delete_branch | ||||
|         hook="AFTER_DELETE_$PMAN_MERGE_SRC"; [ -n "${!hook}" ] && _scripta <<EOF | ||||
|         hook="AFTER_DELETE_$MERGE_SRC"; [ -n "${!hook}" ] && _scripta <<EOF | ||||
| ( | ||||
| ${!hook} | ||||
| )$or_die | ||||
| @ -66,7 +66,7 @@ EOF | ||||
| if [ -n "\$push" ]; then | ||||
| esection "Pousser les branches" | ||||
| EOF | ||||
|     hook="BEFORE_PUSH_$PMAN_MERGE_DEST"; [ -n "${!hook}" ] && _scripta <<EOF | ||||
|     hook="BEFORE_PUSH_$MERGE_DEST"; [ -n "${!hook}" ] && _scripta <<EOF | ||||
| ( | ||||
| ${!hook} | ||||
| )$or_die | ||||
| @ -78,7 +78,7 @@ EOF | ||||
|         _script_push_branches | ||||
|         _scripta <<<fi | ||||
|     fi | ||||
|     hook="AFTER_PUSH_$PMAN_MERGE_DEST"; [ -n "${!hook}" ] && _scripta <<EOF | ||||
|     hook="AFTER_PUSH_$MERGE_DEST"; [ -n "${!hook}" ] && _scripta <<EOF | ||||
| ( | ||||
| ${!hook} | ||||
| )$or_die | ||||
| @ -118,30 +118,30 @@ Il y a aussi les commandes supplémentaires suivantes: | ||||
| } | ||||
| 
 | ||||
| function merge_action() { | ||||
|     [ -n "$PMAN_UNIQUE" ] || resolve_unique_branch "$@" | ||||
|     [ -n "$REF_UNIQUE" ] || resolve_unique_branch "$@" | ||||
|     ensure_merge_branches -a | ||||
| 
 | ||||
|     if [ -n "$PMAN_PREL_MERGE" ]; then | ||||
|         [ -n "$ForceMerge" ] || die "$PmanMergeSrc: cette branche doit être fusionnée dans $PmanMergeDest avec prel" | ||||
|     if [ -n "$PREL_MERGE" ]; then | ||||
|         [ -n "$ForceMerge" ] || die "$MergeSrc: cette branche doit être fusionnée dans $MergeDest avec prel" | ||||
|     fi | ||||
|     if [ -n "$PMAN_DELETE_MERGED" ]; then | ||||
|     if [ -n "$DELETE_MERGED" ]; then | ||||
|         ShouldDelete=1 | ||||
|         [ -n "$AfterMerge" ] || setx AfterMerge=qvals git checkout -q "$PmanMergeDest" | ||||
|         [ -n "$AfterMerge" ] || setx AfterMerge=qvals git checkout -q "$MergeDest" | ||||
|     else | ||||
|         ShouldDelete= | ||||
|         Delete= | ||||
|         [ -n "$AfterMerge" ] || setx AfterMerge=qvals git checkout -q "$PmanMergeSrc" | ||||
|         [ -n "$AfterMerge" ] || setx AfterMerge=qvals git checkout -q "$MergeSrc" | ||||
|     fi | ||||
|     [ -z "$_Fake" ] && git_ensure_cleancheckout | ||||
| 
 | ||||
|     if ! array_contains LocalBranches "$PmanMergeSrc" && array_contains AllBranches "$PmanMergeSrc"; then | ||||
|         enote "$PmanMergeSrc: une branche du même nom existe dans l'origine" | ||||
|     if ! array_contains LocalBranches "$MergeSrc" && array_contains AllBranches "$MergeSrc"; then | ||||
|         enote "$MergeSrc: une branche du même nom existe dans l'origine" | ||||
|     fi | ||||
|     if ! array_contains LocalBranches "$PmanMergeDest" && array_contains AllBranches "$PmanMergeDest"; then | ||||
|         enote "$PmanMergeDest: une branche du même nom existe dans l'origine" | ||||
|     if ! array_contains LocalBranches "$MergeDest" && array_contains AllBranches "$MergeDest"; then | ||||
|         enote "$MergeDest: une branche du même nom existe dans l'origine" | ||||
|     fi | ||||
|     array_contains LocalBranches "$PmanMergeSrc" || die "$PmanMergeSrc: branche locale introuvable" | ||||
|     array_contains LocalBranches "$PmanMergeDest" || die "$PmanMergeDest: branche locale introuvable" | ||||
|     array_contains LocalBranches "$MergeSrc" || die "$MergeSrc: branche locale introuvable" | ||||
|     array_contains LocalBranches "$MergeDest" || die "$MergeDest: branche locale introuvable" | ||||
| 
 | ||||
|     resolve_should_push | ||||
|     _merge_action "$@" | ||||
| @ -154,7 +154,7 @@ function rebase_action() { | ||||
| ################################################################################ | ||||
| 
 | ||||
| loaded_config= | ||||
| dir= | ||||
| merge_dir= | ||||
| if [ "$MYNAME" == ptool ]; then | ||||
|     if [ "$1" == --help ]; then | ||||
|         exit_with eecho "$MYNAME: gérer les branches d'un projet | ||||
| @ -173,66 +173,64 @@ OPTIONS | ||||
|     fi | ||||
| 
 | ||||
|     ref="$1"; shift | ||||
|     dir=to | ||||
|     merge_dir=to | ||||
|     [ -n "$ref" ] || die "vous spécifier la branche de référence" | ||||
| 
 | ||||
|     case "$ref" in | ||||
|     -f|--merge-from) | ||||
|         ref="$1"; shift | ||||
|         dir=from | ||||
|         merge_dir=from | ||||
|         ;; | ||||
|     -f*) | ||||
|         ref="${ref#-f}" | ||||
|         dir=from | ||||
|         merge_dir=from | ||||
|         ;; | ||||
|     -t|--merge-to) | ||||
|         ref="$1"; shift | ||||
|         dir=to | ||||
|         merge_dir=to | ||||
|         ;; | ||||
|     -t*) | ||||
|         ref="${ref#-t}" | ||||
|         dir=to | ||||
|         merge_dir=to | ||||
|         ;; | ||||
|     esac | ||||
|     PMAN_TOOL= | ||||
|     PMAN_REF_BRANCH="${ref^^}" | ||||
|     array_contains PMAN_BRANCHES "$PMAN_REF_BRANCH" || die "$ref: invalid branch" | ||||
|     REF_BRANCH="${ref^^}" | ||||
|     array_contains BRANCHES "$REF_BRANCH" || die "$ref: invalid branch" | ||||
| 
 | ||||
| else | ||||
|     PMAN_TOOL="${MYNAME^^}" | ||||
|     PMAN_REF_BRANCH="PMAN_TOOL_${PMAN_TOOL}"; PMAN_REF_BRANCH="${!PMAN_REF_BRANCH}" | ||||
|     REF_BRANCH="PMAN_TOOL_${MYNAME^^}"; REF_BRANCH="${!REF_BRANCH}" | ||||
| fi | ||||
| 
 | ||||
| if check_gitdir; then | ||||
|     load_branches all | ||||
|     load_config | ||||
|     set_pman_vars "$dir" | ||||
|     set_pman_vars "$merge_dir" | ||||
|     load_branches current | ||||
|     loaded_config=1 | ||||
| else | ||||
|     set_pman_vars "$dir" | ||||
|     set_pman_vars "$merge_dir" | ||||
| fi | ||||
| 
 | ||||
| BranchDesc= | ||||
| MergeSrcDesc= | ||||
| MergeDestDesc= | ||||
| if [ -n "$PMAN_REF_BRANCH" ]; then | ||||
|     BranchDesc="${COULEUR_BLANCHE}<$PMAN_REF_BRANCH>" | ||||
|     [ -n "$PmanRefBranch" -a -n "$PMAN_UNIQUE" ] && BranchDesc="$BranchDesc ($PmanRefBranch)" | ||||
| if [ -n "$REF_BRANCH" ]; then | ||||
|     BranchDesc="${COULEUR_BLANCHE}<$REF_BRANCH>" | ||||
|     [ -n "$RefBranch" -a -n "$REF_UNIQUE" ] && BranchDesc="$BranchDesc ($RefBranch)" | ||||
|     BranchDesc="$BranchDesc${COULEUR_NORMALE}" | ||||
| fi | ||||
| if [ -n "$PMAN_MERGE_SRC" ]; then | ||||
|     MergeSrcDesc="${COULEUR_BLEUE}<$PMAN_MERGE_SRC>" | ||||
|     [ -n "$PmanMergeSrc" -a -n "$PMAN_UNIQUE" ] && MergeSrcDesc="$MergeSrcDesc ($PmanMergeSrc)" | ||||
| if [ -n "$MERGE_SRC" ]; then | ||||
|     MergeSrcDesc="${COULEUR_BLEUE}<$MERGE_SRC>" | ||||
|     [ -n "$MergeSrc" -a -n "$REF_UNIQUE" ] && MergeSrcDesc="$MergeSrcDesc ($MergeSrc)" | ||||
|     MergeSrcDesc="$MergeSrcDesc${COULEUR_NORMALE}" | ||||
| fi | ||||
| if [ -n "$PMAN_MERGE_DEST" ]; then | ||||
|     MergeDestDesc="${COULEUR_ROUGE}<$PMAN_MERGE_DEST>" | ||||
|     [ -n "$PmanMergeDest" -a -n "$PMAN_UNIQUE" ] && MergeDestDesc="$MergeDestDesc ($PmanMergeDest)" | ||||
| if [ -n "$MERGE_DEST" ]; then | ||||
|     MergeDestDesc="${COULEUR_ROUGE}<$MERGE_DEST>" | ||||
|     [ -n "$MergeDest" -a -n "$REF_UNIQUE" ] && MergeDestDesc="$MergeDestDesc ($MergeDest)" | ||||
|     MergeDestDesc="$MergeDestDesc${COULEUR_NORMALE}" | ||||
| fi | ||||
| 
 | ||||
| [ -n "$PMAN_UNIQUE" ] && | ||||
| [ -n "$REF_UNIQUE" ] && | ||||
|     purpose="gérer la branche $BranchDesc" || | ||||
|         purpose="gérer les branches $BranchDesc" | ||||
| usage="--checkout" | ||||
| @ -253,13 +251,13 @@ du dépôt est utilisé par défaut s'il existe. cette option est prioritaire su | ||||
|     --dump action=dump "++afficher les noms des branches" | ||||
| ) | ||||
| 
 | ||||
| if [ -n "$PmanRefBranch" -a -n "$PMAN_UNIQUE" ]; then | ||||
| if [ -n "$RefBranch" -a -n "$REF_UNIQUE" ]; then | ||||
|     args+=( | ||||
|         --checkout action=checkout "++\ | ||||
| créer le cas échéant la branche $BranchDesc et basculer vers elle. | ||||
| c'est l'option par défaut" | ||||
|     ) | ||||
| elif [ -z "$PMAN_UNIQUE" ]; then | ||||
| elif [ -z "$REF_UNIQUE" ]; then | ||||
|     args+=( | ||||
|         --checkout action=checkout "\ | ||||
| créer le cas échéant la branche $BranchDesc et basculer vers elle. | ||||
| @ -273,19 +271,19 @@ c'est l'option par défaut" | ||||
|     ) | ||||
| fi | ||||
| 
 | ||||
| if [ -n "$PMAN_MERGE_SRC" -a -n "$PMAN_MERGE_DEST" ]; then | ||||
|     if [ -n "$PMAN_UNIQUE" ]; then | ||||
| if [ -n "$MERGE_SRC" -a -n "$MERGE_DEST" ]; then | ||||
|     if [ -n "$REF_UNIQUE" ]; then | ||||
|         usage="${usage}|--show|--merge" | ||||
|     else | ||||
|         usage="${usage} $PMAN_REF_BRANCH | ||||
|         usage="${usage} $REF_BRANCH | ||||
| --show|--merge" | ||||
|     fi | ||||
|     [ "$PMAN_REF_BRANCH" != "$PMAN_MERGE_DEST" ] && bewareDir=" | ||||
|     [ "$REF_BRANCH" != "$MERGE_DEST" ] && 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} | ||||
|     AFTER_MERGE_${PMAN_MERGE_SRC}" | ||||
|     BEFORE_MERGE_${MERGE_SRC} | ||||
|     AFTER_MERGE_${MERGE_SRC}" | ||||
| 
 | ||||
|     args+=( | ||||
|         -w,--show '$action=show; inc@ ShowLevel' "\ | ||||
| @ -300,7 +298,7 @@ fusionner la branche $MergeSrcDesc dans la branche $MergeDestDesc$bewareDir" | ||||
| fusionner les modifications de la branche comme un seul commit" | ||||
|     ) | ||||
| 
 | ||||
|     if [ -n "$PMAN_PREL_MERGE" ]; then | ||||
|     if [ -n "$PREL_MERGE" ]; then | ||||
|         args+=( | ||||
|             -f,--force-merge ForceMerge=1 "++\ | ||||
| forcer la fusion pour une branche qui devrait être traitée par prel" | ||||
| @ -315,9 +313,9 @@ pousser les branches vers leur origine après la fusion. | ||||
| c'est l'option par défaut" | ||||
|     ) | ||||
| 
 | ||||
|     if [ -n "$PMAN_DELETE_MERGED" ]; then | ||||
|     if [ -n "$DELETE_MERGED" ]; then | ||||
|         variables="${variables} | ||||
|     AFTER_DELETE_${PMAN_MERGE_SRC}" | ||||
|     AFTER_DELETE_${MERGE_SRC}" | ||||
|         args+=( | ||||
|             -k,--no-delete Delete= "\ | ||||
| ne pas supprimer la branche $MergeSrcDesc après la fusion dans la branche | ||||
| @ -329,10 +327,10 @@ c'est l'option par défaut" | ||||
|         ) | ||||
|     fi | ||||
| 
 | ||||
|     if [ -n "$PMAN_MERGE_DEST" ]; then | ||||
|     if [ -n "$MERGE_DEST" ]; then | ||||
|         variables="${variables} | ||||
|     BEFORE_PUSH_${PMAN_MERGE_DEST} | ||||
|     AFTER_PUSH_${PMAN_MERGE_DEST}" | ||||
|     BEFORE_PUSH_${MERGE_DEST} | ||||
|     AFTER_PUSH_${MERGE_DEST}" | ||||
|     fi | ||||
| 
 | ||||
|     args+=( | ||||
| @ -372,7 +370,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 "$dir" | ||||
|     set_pman_vars "$merge_dir" | ||||
|     load_branches current | ||||
| fi | ||||
| resolve_should_push quiet | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user