modifs.mineures sans commentaires

This commit is contained in:
Jephté Clain 2025-02-27 10:28:38 +04:00
parent add57b8345
commit c99f80b52a
8 changed files with 86 additions and 21 deletions

View File

@ -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 '<pman>'
}
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" <<EOF
[ -s CHANGES.md ] && echo >>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" <<EOF
$(qvals git commit -m "Init changelog & version $Version")
$(qvals git commit -m "<pman>Init changelog & version $Version")
EOF
}
@ -341,7 +343,7 @@ EOF
# fusionner la branche de release
_script_add "* merge branch $ReleaseBranch" <<EOF
$comment$(qvals git merge "$ReleaseBranch" -m "Intégration de la branche $ReleaseBranch" --no-ff)$or_die
$comment$(qvals git merge "$ReleaseBranch" -m "<pman>Intégration de la branche $ReleaseBranch" --no-ff)$or_die
EOF
array_addu push_branches "$dest"

4
bin/_merge82 Executable file
View File

@ -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 "$@"

View File

@ -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"

View File

@ -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="<pman>$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="<pman>$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"

View File

@ -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 "<pman>Intégration initiale de la branche $UPSTREAM" \
-srecursive -Xours --allow-unrelated-histories \
"$UPSTREAM"
push_branches+=("$DEVELOP")

View File

@ -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() {
@ -36,7 +43,15 @@ function create_release_action() {
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="$(<VERSION.txt)"
Tag="$TAG_PREFIX$Version$TAG_SUFFIX"
fi
if [ -z "$Version" ]; then
[ -f VERSION.txt ] && einfo "La version actuelle est $(<VERSION.txt)"
die "Vous devez spécifier la version de la nouvelle release avec l'une des options -v ou -C"
fi
ReleaseBranch="${RELEASE}$Version"
if [ -n "$Merge" ]; then
enote "\
@ -75,7 +90,7 @@ EOF
if [ -n "\$merge" ]; then
echo "== Fusionner la release"
EOF
_rscript_merge_release_branch "$DestBranch" "$TAG_PREFIX$Version$TAG_SUFFIX"
_rscript_merge_release_branch "$DestBranch" "$Tag"
_rscript_merge_release_branch "$SrcBranch"
_rscript_delete_release_branch
_script_add <<EOF
@ -129,6 +144,8 @@ action=release
Merge=1
Push=1
Version=
CurrentVersion=
Force=
_KeepScript=
args=(
"faire une nouvelle release à partir de la branche source"
@ -159,6 +176,10 @@ pousser les branches vers leur origine après la création de la release.
c'est l'option par défaut"
-v:,--version Version= "\
spécifier la version de la release à créer"
-C,--current-version CurrentVersion=1 "++\
si aucune version n'est spécifiée, prendre la version présente dans le fichier VERSION.txt"
-f:,--force Force= "\
forcer la création de la release même si le tag correspond à la version existe déjà"
)
parse_args "$@"; set -- "${args[@]}"

37
lib/completion.d/pman Normal file
View File

@ -0,0 +1,37 @@
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
function __pman_pdev_branches() {
local toplevel="$(git rev-parse --show-toplevel 2>/dev/null)"
[ -n "$toplevel" ] || return 0
(
# cf pman.conf.sh
UPSTREAM=
DEVELOP=develop
FEATURE=wip/
RELEASE=release-
MAIN=master
TAG_PREFIX=
TAG_SUFFIX=
HOTFIX=hotfix-
DIST=
[ -f "$toplevel/.pman.conf" ] && source "$toplevel/.pman.conf"
# lister les branches
branches="$DEVELOP|$FEATURE.*"
[ -n "$UPSTREAM" ] && branches="$branches|$UPSTREAM"
remote=origin/
{
git for-each-ref refs/heads/ --format='%(refname:short)' 2>/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

View File

@ -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 "$@"