tenir compte des branches potentielles
This commit is contained in:
parent
b757ca13ca
commit
7c67a7f37a
|
@ -1,7 +1,12 @@
|
||||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
|
||||||
function __pdev_branches() {
|
function __pdev_branches() {
|
||||||
git for-each-ref --format='%(refname:short)' refs/heads |
|
local prefix=origin/
|
||||||
|
{
|
||||||
|
git for-each-ref refs/heads/ --format='%(refname:short)'
|
||||||
|
git for-each-ref "refs/remotes/$prefix" --format='%(refname:short)' | grep -F "$prefix" | cut -c $((${#prefix} + 1))-
|
||||||
|
} | csort -u |
|
||||||
|
grep -vF HEAD |
|
||||||
grep -vF master |
|
grep -vF master |
|
||||||
grep -v '^release-' |
|
grep -v '^release-' |
|
||||||
grep -v '^hotfix-'
|
grep -v '^hotfix-'
|
||||||
|
|
|
@ -69,13 +69,16 @@ function is_hotfix_branch() { is_any_branch "$1" hotfix; }
|
||||||
function is_feature_branch() { is_any_branch "$1" feature; }
|
function is_feature_branch() { is_any_branch "$1" feature; }
|
||||||
|
|
||||||
function list_release_branches() {
|
function list_release_branches() {
|
||||||
git_list_branches | grep '^release-'
|
local p="$1"
|
||||||
|
git_list_${p:+p}branches | grep '^release-'
|
||||||
}
|
}
|
||||||
function list_hotfix_branches() {
|
function list_hotfix_branches() {
|
||||||
git_list_branches | grep '^hotfix-'
|
local p="$1"
|
||||||
|
git_list_${p:+p}branches | grep '^hotfix-'
|
||||||
}
|
}
|
||||||
function list_feature_branches() {
|
function list_feature_branches() {
|
||||||
git_list_branches |
|
local p="$1"
|
||||||
|
git_list_${p:+p}branches |
|
||||||
grep -vF master |
|
grep -vF master |
|
||||||
grep -vF develop |
|
grep -vF develop |
|
||||||
grep -v '^release-' |
|
grep -v '^release-' |
|
||||||
|
|
10
lib/ulib/vcs
10
lib/ulib/vcs
|
@ -548,6 +548,16 @@ function git_list_branches() {
|
||||||
function git_list_rbranches() {
|
function git_list_rbranches() {
|
||||||
git for-each-ref "refs/remotes/${1:-origin}/" --format='%(refname:short)' | csort
|
git for-each-ref "refs/remotes/${1:-origin}/" --format='%(refname:short)' | csort
|
||||||
}
|
}
|
||||||
|
function git_list_pbranches() {
|
||||||
|
# lister les branches locales et celles qui existent dans l'origine
|
||||||
|
# $1(=origin) et qui pourraient devenir une branche locale avec la commande
|
||||||
|
# git checkout
|
||||||
|
local prefix="${1:-origin}/"
|
||||||
|
{
|
||||||
|
git for-each-ref refs/heads/ --format='%(refname:short)'
|
||||||
|
git for-each-ref "refs/remotes/$prefix" --format='%(refname:short)' | grep -F "$prefix" | cut -c $((${#prefix} + 1))-
|
||||||
|
} | grep -vF HEAD | csort -u
|
||||||
|
}
|
||||||
function git_have_branch() {
|
function git_have_branch() {
|
||||||
git_list_branches | grep -qF "$1"
|
git_list_branches | grep -qF "$1"
|
||||||
}
|
}
|
||||||
|
|
2
pdev
2
pdev
|
@ -103,7 +103,7 @@ if [ "$action" == branch ]; then
|
||||||
source="${2:-develop}"
|
source="${2:-develop}"
|
||||||
|
|
||||||
if [ -z "$feature" ]; then
|
if [ -z "$feature" ]; then
|
||||||
setx -a branches=list_feature_branches
|
setx -a branches=list_feature_branches p
|
||||||
|
|
||||||
if [ ${#branches[*]} -eq 0 ]; then
|
if [ ${#branches[*]} -eq 0 ]; then
|
||||||
# En l'absence de feature branch, basculer sur develop
|
# En l'absence de feature branch, basculer sur develop
|
||||||
|
|
20
prel
20
prel
|
@ -162,7 +162,7 @@ if [ "$action" == update ]; then
|
||||||
else
|
else
|
||||||
# sinon, prendre une décision en fonction des branches de release
|
# sinon, prendre une décision en fonction des branches de release
|
||||||
# qui existent déjà
|
# qui existent déjà
|
||||||
setx -a branches=list_release_branches
|
setx -a branches=list_release_branches p
|
||||||
if [ ${#branches[*]} -eq 0 ]; then
|
if [ ${#branches[*]} -eq 0 ]; then
|
||||||
# en l'absence de branche de release, proposer d'en créer une
|
# en l'absence de branche de release, proposer d'en créer une
|
||||||
incversion=menu
|
incversion=menu
|
||||||
|
@ -175,7 +175,7 @@ if [ "$action" == update ]; then
|
||||||
default_branch="$branch"
|
default_branch="$branch"
|
||||||
array_contains branches "$default_branch" || default_branch="${branches[0]}"
|
array_contains branches "$default_branch" || default_branch="${branches[0]}"
|
||||||
simple_menu release branches -d "$default_branch" \
|
simple_menu release branches -d "$default_branch" \
|
||||||
-t "Basculer vers une release branch" \
|
-t "Basculer vers une branche de release" \
|
||||||
-m "Veuillez choisir la branche vers laquelle basculer"
|
-m "Veuillez choisir la branche vers laquelle basculer"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -188,7 +188,7 @@ if [ "$action" == update ]; then
|
||||||
release="release-$minorv"
|
release="release-$minorv"
|
||||||
branches=("release-$majorv" "release-$minorv" "release-$patchlevelv" master)
|
branches=("release-$majorv" "release-$minorv" "release-$patchlevelv" master)
|
||||||
simple_menu release branches \
|
simple_menu release branches \
|
||||||
-t "Basculer vers une nouvelle release branch" \
|
-t "Basculer vers une nouvelle branche de release" \
|
||||||
-m "Veuillez choisir la branche à créer"
|
-m "Veuillez choisir la branche à créer"
|
||||||
;;
|
;;
|
||||||
major)
|
major)
|
||||||
|
@ -220,7 +220,7 @@ if [ "$action" == checkout ]; then
|
||||||
source="${2:-develop}"
|
source="${2:-develop}"
|
||||||
|
|
||||||
if [ -z "$release" ]; then
|
if [ -z "$release" ]; then
|
||||||
setx -a branches=list_release_branches
|
setx -a branches=list_release_branches p
|
||||||
|
|
||||||
if [ ${#branches[*]} -eq 0 ]; then
|
if [ ${#branches[*]} -eq 0 ]; then
|
||||||
# en l'absence de branche de release, basculer sur master
|
# en l'absence de branche de release, basculer sur master
|
||||||
|
@ -234,7 +234,7 @@ if [ "$action" == checkout ]; then
|
||||||
default_branch="$branch"
|
default_branch="$branch"
|
||||||
array_contains branches "$default_branch" || default_branch="${branches[0]}"
|
array_contains branches "$default_branch" || default_branch="${branches[0]}"
|
||||||
simple_menu release branches -d "$default_branch" \
|
simple_menu release branches -d "$default_branch" \
|
||||||
-t "Basculer vers une release branch" \
|
-t "Basculer vers une branche de release" \
|
||||||
-m "Veuillez choisir la branche vers laquelle basculer"
|
-m "Veuillez choisir la branche vers laquelle basculer"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -249,13 +249,13 @@ if [ "$action" == checkout ]; then
|
||||||
|
|
||||||
# Créer/basculer vers une release branch
|
# Créer/basculer vers une release branch
|
||||||
git_ensure_cleancheckout
|
git_ensure_cleancheckout
|
||||||
is_any_branch "$release" master release || die "$release: ce n'est pas une release branch"
|
is_any_branch "$release" master release || die "$release: ce n'est pas une branche de release"
|
||||||
r=0
|
r=0
|
||||||
if git_have_branch "$release"; then
|
if git_have_branch "$release"; then
|
||||||
git checkout "$release"; r=$?
|
git checkout "$release"; r=$?
|
||||||
else
|
else
|
||||||
estepn "\
|
estepn "\
|
||||||
Vous allez créer la nouvelle release branch ${COULEUR_VERTE}$release${COULEUR_NORMALE}
|
Vous allez créer la nouvelle branche de release ${COULEUR_VERTE}$release${COULEUR_NORMALE}
|
||||||
à partir de la branche source ${COULEUR_BLEUE}$source${COULEUR_NORMALE}"
|
à partir de la branche source ${COULEUR_BLEUE}$source${COULEUR_NORMALE}"
|
||||||
ask_yesno "Voulez-vous continuer?" O || die
|
ask_yesno "Voulez-vous continuer?" O || die
|
||||||
|
|
||||||
|
@ -285,7 +285,7 @@ setb have_release_branches=[ ${#branches[*]} -gt 0 ]
|
||||||
release="$1"
|
release="$1"
|
||||||
if [ -n "$release" ]; then
|
if [ -n "$release" ]; then
|
||||||
if [ -n "$have_release_branches" ]; then
|
if [ -n "$have_release_branches" ]; then
|
||||||
is_release_branch "$release" || die "$release: ce n'est pas une release branch"
|
is_release_branch "$release" || die "$release: ce n'est pas une branche de release"
|
||||||
elif ! is_develop_branch "$release"; then
|
elif ! is_develop_branch "$release"; then
|
||||||
die "Aucune branche de release n'existe, vous devez fusionner à partir de develop"
|
die "Aucune branche de release n'existe, vous devez fusionner à partir de develop"
|
||||||
fi
|
fi
|
||||||
|
@ -299,7 +299,7 @@ if [ "$action" == merge ]; then
|
||||||
|
|
||||||
if [ -z "$release" ]; then
|
if [ -z "$release" ]; then
|
||||||
if [ ${#branches[*]} -eq 0 ]; then
|
if [ ${#branches[*]} -eq 0 ]; then
|
||||||
ewarn "Aucune release branch n'a été préparée."
|
ewarn "Aucune branche de release n'a été préparée."
|
||||||
ewarn "La branche develop sera fusionnée directement dans master."
|
ewarn "La branche develop sera fusionnée directement dans master."
|
||||||
release=develop
|
release=develop
|
||||||
confirm=-y
|
confirm=-y
|
||||||
|
@ -310,7 +310,7 @@ if [ "$action" == merge ]; then
|
||||||
default_release="$branch"
|
default_release="$branch"
|
||||||
array_contains branches "$default_release" || default_release="${branches[0]}"
|
array_contains branches "$default_release" || default_release="${branches[0]}"
|
||||||
simple_menu release branches -d "$default_release" \
|
simple_menu release branches -d "$default_release" \
|
||||||
-t "Choix de la release branch" \
|
-t "Choix de la branche de release" \
|
||||||
-m "Veuillez choisir la branche"
|
-m "Veuillez choisir la branche"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue