From c99f80b52a7dcb18a7e3788322a8a6959c432ae3 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Thu, 27 Feb 2025 10:28:38 +0400 Subject: [PATCH] modifs.mineures sans commentaires --- bash/src/pman.sh | 18 ++++++++++-------- bin/_merge82 | 4 ++++ bin/{np => p} | 2 +- wip/pmer => bin/pdev | 12 +++++++++--- {wip => bin}/pman | 2 +- {wip => bin}/prel | 27 ++++++++++++++++++++++++--- lib/completion.d/pman | 37 +++++++++++++++++++++++++++++++++++++ wip/_merge82 | 5 ----- 8 files changed, 86 insertions(+), 21 deletions(-) create mode 100755 bin/_merge82 rename bin/{np => p} (95%) rename wip/pmer => bin/pdev (92%) rename {wip => bin}/pman (99%) rename {wip => bin}/prel (86%) create mode 100644 lib/completion.d/pman delete mode 100755 wip/_merge82 diff --git a/bash/src/pman.sh b/bash/src/pman.sh index e0ba838..a6b062e 100644 --- a/bash/src/pman.sh +++ b/bash/src/pman.sh @@ -33,8 +33,7 @@ Ces lignes ne seront pas incluses dans le fichier destination function _filter_rel() { # enlever les commits "techniques" générés par ce script - grep -v "Intégration de la branche $RELEASE" | - grep -v "Branche $DEVELOP en version .*-SNAPSHOT" + grep -vE '' } function _filter_changes() { @@ -67,7 +66,7 @@ function _list_commits() { local source="${1:-$SrcBranch}" dest="${2:-$DestBranch}" mergebase setx mergebase=git merge-base "$dest" "$source" git log --oneline --graph "$mergebase..$source" | - grep -vF '|\' | grep -vF '|/' | sed 's/\* //; s/^ /+ /' | + grep -vF '|\' | grep -vF '|/' | sed -r 's/^(\| )+\* +/| /; s/^\* +/+ /' | _filter_rel } @@ -297,9 +296,13 @@ function _rscript_create_release_branch() { _init_changelog echo >>"$changelog" "\ -## Release $Version du $date +## Release $Tag du $date " _list_commits | _filter_changes | _format_md >>"$changelog" + if [ -s CHANGES.md ]; then + echo >>"$changelog" + cat CHANGES.md >>"$changelog" + fi "${EDITOR:-nano}" +7 "$changelog" [ -s "$changelog" ] || exit_with ewarn "Création de la release annulée" @@ -310,12 +313,11 @@ EOF # créer le changelog _script_add "* update CHANGES.md" <>CHANGES.md $(qvals echo "$(awk <"$changelog" ' BEGIN { p = 0 } p == 0 && $0 == "" { p = 1; next } p == 1 { gsub(/\$/, "\\$", $0); print } -')") >>CHANGES.md +')") >CHANGES.md git add CHANGES.md EOF @@ -327,7 +329,7 @@ EOF # Enregistrer les changements _script_add "* commit" <Init changelog & version $Version") EOF } @@ -341,7 +343,7 @@ EOF # fusionner la branche de release _script_add "* merge branch $ReleaseBranch" <Intégration de la branche $ReleaseBranch" --no-ff)$or_die EOF array_addu push_branches "$dest" diff --git a/bin/_merge82 b/bin/_merge82 new file mode 100755 index 0000000..3c89e35 --- /dev/null +++ b/bin/_merge82 @@ -0,0 +1,4 @@ +#!/bin/bash +# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 + +exec "$(dirname -- "$0")/pdev" --tech-merge -Bdev82 dev74 "$@" diff --git a/bin/np b/bin/p similarity index 95% rename from bin/np rename to bin/p index e567f2b..384f6c4 100755 --- a/bin/np +++ b/bin/p @@ -5,7 +5,7 @@ require: git function git_status() { local status r cwd - status="$(git status "$@" 2>&1)"; r=$? + status="$(git -c color.status=always status "$@" 2>&1)"; r=$? if [ -n "$status" ]; then setx cwd=ppath2 "$(pwd)" "$OrigCwd" etitle "$cwd" diff --git a/wip/pmer b/bin/pdev similarity index 92% rename from wip/pmer rename to bin/pdev index eeabed5..1c247cd 100755 --- a/wip/pmer +++ b/bin/pdev @@ -33,15 +33,19 @@ Ce script va - pousser les branches modifiées}" ask_yesno "Voulez-vous continuer?" O || die - local -a push_branches + local -a push_branches; local msg einfo "Fusion ${SquashMsg:+squash }dans $DestBranch" git checkout "$DestBranch" || die if [ -n "$SquashMsg" ]; then + msg="$SquashMsg" + [ -n "$TechMerge" ] && msg="$msg" git merge "$SrcBranch" --squash - git commit -m "$SquashMsg" + git commit -m "$msg" else - git merge "$SrcBranch" --no-ff -m "Intégration de la branche $SrcBranch" + msg="Intégration de la branche $SrcBranch" + [ -n "$TechMerge" ] && msg="$msg" + git merge "$SrcBranch" --no-ff -m "$msg" fi push_branches+=("$DestBranch") @@ -63,6 +67,7 @@ Origin= ConfigBranch= ConfigFile= action=merge +TechMerge= SquashMsg= Push=1 Delete=1 @@ -85,6 +90,7 @@ commits pour nettoyer l'historique avant la fusion" --merge action=merge "++\ fusionner la branche source dans la branche destination correspondante. c'est l'action par défaut" + --tech-merge TechMerge=1 "++option non documentée" -s:,--squash:COMMIT_MSG SquashMsg= "\ fusionner les modifications de la branche comme un seul commit. cette option ne devrait pas être utilisée avec --no-delete" diff --git a/wip/pman b/bin/pman similarity index 99% rename from wip/pman rename to bin/pman index 493c8ea..e97aae6 100755 --- a/wip/pman +++ b/bin/pman @@ -118,7 +118,7 @@ function init_upstream_action() { einfo "Fusion dans $DEVELOP" git checkout "$DEVELOP" git merge \ - --no-ff -m "Intégration initiale de la branche $UPSTREAM" \ + --no-ff -m "Intégration initiale de la branche $UPSTREAM" \ -srecursive -Xours --allow-unrelated-histories \ "$UPSTREAM" push_branches+=("$DEVELOP") diff --git a/wip/prel b/bin/prel similarity index 86% rename from wip/prel rename to bin/prel index da06fe9..0c64537 100755 --- a/wip/prel +++ b/bin/prel @@ -22,6 +22,13 @@ function ensure_branches() { array_contains LocalBranches "$SrcBranch" || die "$SrcBranch: branche source introuvable" array_contains LocalBranches "$DestBranch" || die "$DestBranch: branche destination introuvable" + + Tag="$TAG_PREFIX$Version$TAG_SUFFIX" + local -a tags + setx -a tags=git tag -l "${TAG_PREFIX}*${TAG_SUFFIX}" + if [ -z "$Force" ]; then + array_contains tags "$Tag" && die "$Tag: le tag correspondant à la version existe déjà" + fi } function create_release_action() { @@ -35,8 +42,16 @@ function create_release_action() { Version="${HotfixBranch#$HOTFIX}" merge_hotfix_action "$@"; return $? fi - - [ -n "$Version" ] || die "Vous devez spécifier la version de la release" + + if [ -z "$Version" -a -n "$CurrentVersion" -a -f VERSION.txt ]; then + Version="$(/dev/null + git for-each-ref "refs/remotes/$remote" --format='%(refname:short)' 2>/dev/null | + grep -F "$remote" | + cut -c $((${#remote} + 1))- + } | LANG=C sort -u | grep -E "^($branches)\$" + ) +} + +function __pdev_completion() { + local cur + _get_comp_words_by_ref cur + COMPREPLY=($(compgen -W "$(__pman_pdev_branches)" "$cur")) +} +complete -F __pdev_completion pdev diff --git a/wip/_merge82 b/wip/_merge82 deleted file mode 100755 index 9c66921..0000000 --- a/wip/_merge82 +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 -source "$(dirname -- "$0")/../load.sh" || exit 1 - -exec "$MYDIR/pmer" -Bdev82 dev74 "$@"