modifs.mineures sans commentaires
This commit is contained in:
parent
add57b8345
commit
c99f80b52a
@ -33,8 +33,7 @@ Ces lignes ne seront pas incluses dans le fichier destination
|
|||||||
|
|
||||||
function _filter_rel() {
|
function _filter_rel() {
|
||||||
# enlever les commits "techniques" générés par ce script
|
# enlever les commits "techniques" générés par ce script
|
||||||
grep -v "Intégration de la branche $RELEASE" |
|
grep -vE '<pman>'
|
||||||
grep -v "Branche $DEVELOP en version .*-SNAPSHOT"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function _filter_changes() {
|
function _filter_changes() {
|
||||||
@ -67,7 +66,7 @@ function _list_commits() {
|
|||||||
local source="${1:-$SrcBranch}" dest="${2:-$DestBranch}" mergebase
|
local source="${1:-$SrcBranch}" dest="${2:-$DestBranch}" mergebase
|
||||||
setx mergebase=git merge-base "$dest" "$source"
|
setx mergebase=git merge-base "$dest" "$source"
|
||||||
git log --oneline --graph "$mergebase..$source" |
|
git log --oneline --graph "$mergebase..$source" |
|
||||||
grep -vF '|\' | grep -vF '|/' | sed 's/\* //; s/^ /+ /' |
|
grep -vF '|\' | grep -vF '|/' | sed -r 's/^(\| )+\* +/| /; s/^\* +/+ /' |
|
||||||
_filter_rel
|
_filter_rel
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -297,9 +296,13 @@ function _rscript_create_release_branch() {
|
|||||||
|
|
||||||
_init_changelog
|
_init_changelog
|
||||||
echo >>"$changelog" "\
|
echo >>"$changelog" "\
|
||||||
## Release $Version du $date
|
## Release $Tag du $date
|
||||||
"
|
"
|
||||||
_list_commits | _filter_changes | _format_md >>"$changelog"
|
_list_commits | _filter_changes | _format_md >>"$changelog"
|
||||||
|
if [ -s CHANGES.md ]; then
|
||||||
|
echo >>"$changelog"
|
||||||
|
cat CHANGES.md >>"$changelog"
|
||||||
|
fi
|
||||||
"${EDITOR:-nano}" +7 "$changelog"
|
"${EDITOR:-nano}" +7 "$changelog"
|
||||||
[ -s "$changelog" ] || exit_with ewarn "Création de la release annulée"
|
[ -s "$changelog" ] || exit_with ewarn "Création de la release annulée"
|
||||||
|
|
||||||
@ -310,12 +313,11 @@ EOF
|
|||||||
|
|
||||||
# créer le changelog
|
# créer le changelog
|
||||||
_script_add "* update CHANGES.md" <<EOF
|
_script_add "* update CHANGES.md" <<EOF
|
||||||
[ -s CHANGES.md ] && echo >>CHANGES.md
|
|
||||||
$(qvals echo "$(awk <"$changelog" '
|
$(qvals echo "$(awk <"$changelog" '
|
||||||
BEGIN { p = 0 }
|
BEGIN { p = 0 }
|
||||||
p == 0 && $0 == "" { p = 1; next }
|
p == 0 && $0 == "" { p = 1; next }
|
||||||
p == 1 { gsub(/\$/, "\\$", $0); print }
|
p == 1 { gsub(/\$/, "\\$", $0); print }
|
||||||
')") >>CHANGES.md
|
')") >CHANGES.md
|
||||||
git add CHANGES.md
|
git add CHANGES.md
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
@ -327,7 +329,7 @@ EOF
|
|||||||
|
|
||||||
# Enregistrer les changements
|
# Enregistrer les changements
|
||||||
_script_add "* commit" <<EOF
|
_script_add "* commit" <<EOF
|
||||||
$(qvals git commit -m "Init changelog & version $Version")
|
$(qvals git commit -m "<pman>Init changelog & version $Version")
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -341,7 +343,7 @@ EOF
|
|||||||
|
|
||||||
# fusionner la branche de release
|
# fusionner la branche de release
|
||||||
_script_add "* merge branch $ReleaseBranch" <<EOF
|
_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
|
EOF
|
||||||
array_addu push_branches "$dest"
|
array_addu push_branches "$dest"
|
||||||
|
|
||||||
|
4
bin/_merge82
Executable file
4
bin/_merge82
Executable 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 "$@"
|
@ -5,7 +5,7 @@ require: git
|
|||||||
|
|
||||||
function git_status() {
|
function git_status() {
|
||||||
local status r cwd
|
local status r cwd
|
||||||
status="$(git status "$@" 2>&1)"; r=$?
|
status="$(git -c color.status=always status "$@" 2>&1)"; r=$?
|
||||||
if [ -n "$status" ]; then
|
if [ -n "$status" ]; then
|
||||||
setx cwd=ppath2 "$(pwd)" "$OrigCwd"
|
setx cwd=ppath2 "$(pwd)" "$OrigCwd"
|
||||||
etitle "$cwd"
|
etitle "$cwd"
|
@ -33,15 +33,19 @@ Ce script va
|
|||||||
- pousser les branches modifiées}"
|
- pousser les branches modifiées}"
|
||||||
ask_yesno "Voulez-vous continuer?" O || die
|
ask_yesno "Voulez-vous continuer?" O || die
|
||||||
|
|
||||||
local -a push_branches
|
local -a push_branches; local msg
|
||||||
|
|
||||||
einfo "Fusion ${SquashMsg:+squash }dans $DestBranch"
|
einfo "Fusion ${SquashMsg:+squash }dans $DestBranch"
|
||||||
git checkout "$DestBranch" || die
|
git checkout "$DestBranch" || die
|
||||||
if [ -n "$SquashMsg" ]; then
|
if [ -n "$SquashMsg" ]; then
|
||||||
|
msg="$SquashMsg"
|
||||||
|
[ -n "$TechMerge" ] && msg="<pman>$msg"
|
||||||
git merge "$SrcBranch" --squash
|
git merge "$SrcBranch" --squash
|
||||||
git commit -m "$SquashMsg"
|
git commit -m "$msg"
|
||||||
else
|
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
|
fi
|
||||||
push_branches+=("$DestBranch")
|
push_branches+=("$DestBranch")
|
||||||
|
|
||||||
@ -63,6 +67,7 @@ Origin=
|
|||||||
ConfigBranch=
|
ConfigBranch=
|
||||||
ConfigFile=
|
ConfigFile=
|
||||||
action=merge
|
action=merge
|
||||||
|
TechMerge=
|
||||||
SquashMsg=
|
SquashMsg=
|
||||||
Push=1
|
Push=1
|
||||||
Delete=1
|
Delete=1
|
||||||
@ -85,6 +90,7 @@ commits pour nettoyer l'historique avant la fusion"
|
|||||||
--merge action=merge "++\
|
--merge action=merge "++\
|
||||||
fusionner la branche source dans la branche destination correspondante.
|
fusionner la branche source dans la branche destination correspondante.
|
||||||
c'est l'action par défaut"
|
c'est l'action par défaut"
|
||||||
|
--tech-merge TechMerge=1 "++option non documentée"
|
||||||
-s:,--squash:COMMIT_MSG SquashMsg= "\
|
-s:,--squash:COMMIT_MSG SquashMsg= "\
|
||||||
fusionner les modifications de la branche comme un seul commit.
|
fusionner les modifications de la branche comme un seul commit.
|
||||||
cette option ne devrait pas être utilisée avec --no-delete"
|
cette option ne devrait pas être utilisée avec --no-delete"
|
@ -118,7 +118,7 @@ function init_upstream_action() {
|
|||||||
einfo "Fusion dans $DEVELOP"
|
einfo "Fusion dans $DEVELOP"
|
||||||
git checkout "$DEVELOP"
|
git checkout "$DEVELOP"
|
||||||
git merge \
|
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 \
|
-srecursive -Xours --allow-unrelated-histories \
|
||||||
"$UPSTREAM"
|
"$UPSTREAM"
|
||||||
push_branches+=("$DEVELOP")
|
push_branches+=("$DEVELOP")
|
@ -22,6 +22,13 @@ function ensure_branches() {
|
|||||||
|
|
||||||
array_contains LocalBranches "$SrcBranch" || die "$SrcBranch: branche source introuvable"
|
array_contains LocalBranches "$SrcBranch" || die "$SrcBranch: branche source introuvable"
|
||||||
array_contains LocalBranches "$DestBranch" || die "$DestBranch: branche destination 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() {
|
function create_release_action() {
|
||||||
@ -35,8 +42,16 @@ function create_release_action() {
|
|||||||
Version="${HotfixBranch#$HOTFIX}"
|
Version="${HotfixBranch#$HOTFIX}"
|
||||||
merge_hotfix_action "$@"; return $?
|
merge_hotfix_action "$@"; return $?
|
||||||
fi
|
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"
|
ReleaseBranch="${RELEASE}$Version"
|
||||||
if [ -n "$Merge" ]; then
|
if [ -n "$Merge" ]; then
|
||||||
enote "\
|
enote "\
|
||||||
@ -75,7 +90,7 @@ EOF
|
|||||||
if [ -n "\$merge" ]; then
|
if [ -n "\$merge" ]; then
|
||||||
echo "== Fusionner la release"
|
echo "== Fusionner la release"
|
||||||
EOF
|
EOF
|
||||||
_rscript_merge_release_branch "$DestBranch" "$TAG_PREFIX$Version$TAG_SUFFIX"
|
_rscript_merge_release_branch "$DestBranch" "$Tag"
|
||||||
_rscript_merge_release_branch "$SrcBranch"
|
_rscript_merge_release_branch "$SrcBranch"
|
||||||
_rscript_delete_release_branch
|
_rscript_delete_release_branch
|
||||||
_script_add <<EOF
|
_script_add <<EOF
|
||||||
@ -129,6 +144,8 @@ action=release
|
|||||||
Merge=1
|
Merge=1
|
||||||
Push=1
|
Push=1
|
||||||
Version=
|
Version=
|
||||||
|
CurrentVersion=
|
||||||
|
Force=
|
||||||
_KeepScript=
|
_KeepScript=
|
||||||
args=(
|
args=(
|
||||||
"faire une nouvelle release à partir de la branche source"
|
"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"
|
c'est l'option par défaut"
|
||||||
-v:,--version Version= "\
|
-v:,--version Version= "\
|
||||||
spécifier la version de la release à créer"
|
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[@]}"
|
parse_args "$@"; set -- "${args[@]}"
|
||||||
|
|
37
lib/completion.d/pman
Normal file
37
lib/completion.d/pman
Normal 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
|
@ -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 "$@"
|
|
Reference in New Issue
Block a user