From 523d3f1c6c3cb13bda035ad48c6396bd15769090 Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Thu, 26 Mar 2015 20:06:56 +0400 Subject: [PATCH 1/8] =?UTF-8?q?doc=20pour=20nouvelle=20fonctionnalit=C3=A9?= =?UTF-8?q?=20=C3=A0=20impl=C3=A9menter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pdev | 3 +++ prel | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/pdev b/pdev index 4c2fc30..06e2f30 100755 --- a/pdev +++ b/pdev @@ -55,6 +55,9 @@ OPTIONS -k, --keep Avec l'option -m, ne pas supprimer une feature branch après l'avoir fusionnée dans develop. + -d, --delete + Supprimer une feature branch, à condition qu'elle aie déjà été + entièrement fusionnée dans la branch develop -l, --log -d, --diff diff --git a/prel b/prel index 49a8ee6..ff4a19c 100755 --- a/prel +++ b/prel @@ -93,6 +93,10 @@ OPTIONS S'il n'existe pas de branche de release, proposer de fusionner les modifications de la branche develop dans la branche master, sans préparer de branche de release au préalable. + -d, --delete + Supprimer une branche de release, à condition qu'elle aie déjà été + entièrement fusionnée dans la branch master + -l, --log Afficher les modifications actuellement effectuée dans la branche de release par rapport à develop. From 38f04ff0468d39070086c0f560d383da22db0298 Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Thu, 26 Mar 2015 20:08:35 +0400 Subject: [PATCH 2/8] maj doc --- pdev | 3 +++ prel | 3 +++ 2 files changed, 6 insertions(+) diff --git a/pdev b/pdev index 06e2f30..308f2d9 100755 --- a/pdev +++ b/pdev @@ -58,6 +58,9 @@ OPTIONS -d, --delete Supprimer une feature branch, à condition qu'elle aie déjà été entièrement fusionnée dans la branch develop + --force-delete + Supprimer une feature branch, même si elle n'a pas encore été fusionnée + dans la branche develop -l, --log -d, --diff diff --git a/prel b/prel index ff4a19c..bc619ac 100755 --- a/prel +++ b/prel @@ -96,6 +96,9 @@ OPTIONS -d, --delete Supprimer une branche de release, à condition qu'elle aie déjà été entièrement fusionnée dans la branch master + --force-delete + Supprimer une branche de release, même si elle n'a pas encore été + fusionnée dans la branche master -l, --log Afficher les modifications actuellement effectuée dans la branche de From dd2a712b863721e01ed94cb88d0cb6ce32c19c62 Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Tue, 31 Mar 2015 17:44:21 +0400 Subject: [PATCH 3/8] ajout de -d et --force-delete --- pdev | 56 +++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 39 insertions(+), 17 deletions(-) diff --git a/pdev b/pdev index 308f2d9..7987d0c 100755 --- a/pdev +++ b/pdev @@ -77,6 +77,7 @@ projdir= origin=origin action=branch merge_delete=1 +force_delete= log= diff= parse_opts "${PRETTYOPTS[@]}" \ @@ -87,6 +88,8 @@ parse_opts "${PRETTYOPTS[@]}" \ --online UTOOLS_VCS_OFFLINE= \ -m,--merge action=merge \ -k,--keep merge_delete= \ + -d,--delete action=delete \ + --force-delete '$action=delete; force_delete=1' \ -l,--log '$action=diff; log=1' \ -d,--diff '$action=diff; diff=1' \ @ args -- "$@" && set -- "${args[@]}" || die "$args" @@ -103,7 +106,6 @@ if ! git_have_branch develop; then fi setx branch=git_get_branch - if [ "$action" == branch ]; then feature="$1" source="${2:-develop}" @@ -154,6 +156,9 @@ Vous allez créer la nouvelle feature branch ${COULEUR_VERTE}$feature${COULEUR_N git_fast_forward "$feature" "" "$origin" fi + # mettre à jour la branche sur laquelle on se trouve + setx branch=git_get_branch + exit $? fi @@ -185,27 +190,44 @@ if [ "$action" == merge ]; then estepn "Intégration ${COULEUR_VERTE}$feature${COULEUR_NORMALE} --> ${COULEUR_BLEUE}develop${COULEUR_NORMALE}" ask_yesno "Voulez-vous continuer?" O || die - git checkout develop + git checkout develop || die git merge "$feature" -m "Intégration de la feature branch $feature" --no-ff || die - if [ -n "$merge_delete" ]; then - estepi "Suppression de la branche locale" - git branch -D "$feature" + # mettre à jour la branche sur laquelle on se trouve + setx branch=git_get_branch - if git_have_remote "$origin"; then - if [ -z "$UTOOLS_VCS_OFFLINE" ]; then - estepi "Suppression de la branche distante" - git push "$origin" ":$feature" - else - eimportant "\ -La branche $feature n'a plus lieu d'être, mais la configuration actuelle interdit de la supprimer dans le dépôt distant. -Veuillez le faire manuellement avec la commande suivante: - $(quoted_args git push "$origin" ":$feature")" - fi - fi + [ -n "$merge_delete" ] && action=delete +fi + +if [ "$action" == delete ]; then + if [ -z "$force_delete" ]; then + # vérifier que la branche a été fusionnée + git_is_merged "$feature" develop || die "Refus de supprimer la branche $feature: elle n'a pas été fusionnée dans develop" fi -elif [ "$action" == diff ]; then + if [ "$branch" == "$feature" ]; then + # si on est sur la branche en question, en sortir pour pouvoir la + # supprimer + git checkout develop || die + fi + + estepi "Suppression de la branche locale" + git branch -D "$feature" + + if git_have_remote "$origin"; then + if [ -z "$UTOOLS_VCS_OFFLINE" ]; then + estepi "Suppression de la branche distante" + git push "$origin" ":$feature" + elif git_have_rbranch "$feature" "$origin"; then + eimportant "\ +La branche $origin/$feature n'a plus lieu d'être, mais la configuration actuelle interdit de la supprimer. +Veuillez le faire manuellement avec la commande suivante: + $(quoted_args git push "$origin" ":$feature")" + fi + fi +fi + +if [ "$action" == diff ]; then if [ -n "$log" ]; then if [ -n "$feature" ]; then git log ${diff:+-p} develop.."$feature" From 18bb5108807df29925fc93700d140114f39b01bd Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Tue, 31 Mar 2015 17:46:31 +0400 Subject: [PATCH 4/8] =?UTF-8?q?supprimer=20l'option=20courte=20-d=20qui=20?= =?UTF-8?q?est=20d=C3=A9j=C3=A0=20utilis=C3=A9e=20pour=20diff?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pdev | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pdev b/pdev index 7987d0c..0ca4cc8 100755 --- a/pdev +++ b/pdev @@ -55,7 +55,7 @@ OPTIONS -k, --keep Avec l'option -m, ne pas supprimer une feature branch après l'avoir fusionnée dans develop. - -d, --delete + --delete Supprimer une feature branch, à condition qu'elle aie déjà été entièrement fusionnée dans la branch develop --force-delete @@ -88,7 +88,7 @@ parse_opts "${PRETTYOPTS[@]}" \ --online UTOOLS_VCS_OFFLINE= \ -m,--merge action=merge \ -k,--keep merge_delete= \ - -d,--delete action=delete \ + --delete action=delete \ --force-delete '$action=delete; force_delete=1' \ -l,--log '$action=diff; log=1' \ -d,--diff '$action=diff; diff=1' \ @@ -165,7 +165,7 @@ fi feature="$1" if [ -n "$feature" ]; then is_feature_branch "$feature" || die "$feature: ce n'est pas une feature branch" - git_have_branch "$feature" || die "$feature: branche invalide" + git_have_branch "$feature" || die "$feature: branche introuvable" elif is_feature_branch "$branch"; then feature="$branch" fi From 5f6d5bb1eae94ac43386379f7d9585b9b2655f23 Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Tue, 31 Mar 2015 17:47:16 +0400 Subject: [PATCH 5/8] ajout des options courtes -z et -Z --- pdev | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pdev b/pdev index 0ca4cc8..a30e0de 100755 --- a/pdev +++ b/pdev @@ -55,10 +55,10 @@ OPTIONS -k, --keep Avec l'option -m, ne pas supprimer une feature branch après l'avoir fusionnée dans develop. - --delete + -z, --delete Supprimer une feature branch, à condition qu'elle aie déjà été entièrement fusionnée dans la branch develop - --force-delete + -Z, --force-delete Supprimer une feature branch, même si elle n'a pas encore été fusionnée dans la branche develop @@ -88,8 +88,8 @@ parse_opts "${PRETTYOPTS[@]}" \ --online UTOOLS_VCS_OFFLINE= \ -m,--merge action=merge \ -k,--keep merge_delete= \ - --delete action=delete \ - --force-delete '$action=delete; force_delete=1' \ + -z,--delete action=delete \ + -Z,--force-delete '$action=delete; force_delete=1' \ -l,--log '$action=diff; log=1' \ -d,--diff '$action=diff; diff=1' \ @ args -- "$@" && set -- "${args[@]}" || die "$args" From 2f41de35b773f8e8eac6db5b47530584df186dbf Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Tue, 31 Mar 2015 17:59:21 +0400 Subject: [PATCH 6/8] cosmetic --- pdev | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pdev b/pdev index a30e0de..e0239c7 100755 --- a/pdev +++ b/pdev @@ -156,9 +156,6 @@ Vous allez créer la nouvelle feature branch ${COULEUR_VERTE}$feature${COULEUR_N git_fast_forward "$feature" "" "$origin" fi - # mettre à jour la branche sur laquelle on se trouve - setx branch=git_get_branch - exit $? fi @@ -191,7 +188,7 @@ if [ "$action" == merge ]; then ask_yesno "Voulez-vous continuer?" O || die git checkout develop || die - git merge "$feature" -m "Intégration de la feature branch $feature" --no-ff || die + git merge "$feature" -m "Intégration de la branche $feature" --no-ff || die # mettre à jour la branche sur laquelle on se trouve setx branch=git_get_branch From 6c8e750d318bbb69d396bb2e37ec480c8bc30f81 Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Tue, 31 Mar 2015 17:59:47 +0400 Subject: [PATCH 7/8] =?UTF-8?q?impl=C3=A9mener=20-z=20et=20-Z?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- prel | 59 ++++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 17 deletions(-) diff --git a/prel b/prel index bc619ac..f45e032 100755 --- a/prel +++ b/prel @@ -93,10 +93,10 @@ OPTIONS S'il n'existe pas de branche de release, proposer de fusionner les modifications de la branche develop dans la branche master, sans préparer de branche de release au préalable. - -d, --delete + -z, --delete Supprimer une branche de release, à condition qu'elle aie déjà été entièrement fusionnée dans la branch master - --force-delete + -Z, --force-delete Supprimer une branche de release, même si elle n'a pas encore été fusionnée dans la branche master @@ -111,12 +111,13 @@ OPTIONS projdir= origin=origin action=auto -update= -merge= checkout= +update= incversion= pver_opts=() write=1 +merge= +force_delete= log= diff= parse_opts "${PRETTYOPTS[@]}" \ @@ -135,6 +136,8 @@ parse_opts "${PRETTYOPTS[@]}" \ -w,--write write=1 \ -n,--no-write write= \ -m,--merge merge=1 \ + -z,--delete action=delete \ + -Z,--force-delete '$action=delete; force_delete=1' \ -l,--log '$action=diff; log=1' \ -d,--diff '$action=diff; diff=1' \ @ args -- "$@" && set -- "${args[@]}" || die "$args" @@ -287,6 +290,9 @@ Vous allez créer la nouvelle branche de release ${COULEUR_VERTE}$release${COULE fi if [ "$r" -eq 0 -a -n "$merge" ]; then + # mettre à jour la branche sur laquelle on se trouve + setx branch=git_get_branch + set -- "$release" action=merge else @@ -304,7 +310,7 @@ if [ -n "$release" ]; then elif ! is_develop_branch "$release"; then die "Aucune branche de release n'existe, vous devez fusionner à partir de develop" fi - git_have_branch "$release" || die "$release: branche invalide" + git_have_branch "$release" || die "$release: branche introuvable" elif is_release_branch "$branch"; then release="$branch" fi @@ -333,7 +339,7 @@ if [ "$action" == merge ]; then estepn "Intégration ${COULEUR_VERTE}$release${COULEUR_NORMALE} --> ${COULEUR_BLEUE}master${COULEUR_NORMALE}" ask_yesno $confirm "Voulez-vous continuer?" O || die - git checkout master + git checkout master || die git merge "$release" -m "Intégration de la branche $release" --no-ff || die if [ -n "$newver" ]; then @@ -345,26 +351,45 @@ if [ "$action" == merge ]; then estepn "Intégration ${COULEUR_VERTE}$release${COULEUR_NORMALE} --> ${COULEUR_BLEUE}develop${COULEUR_NORMALE}" git checkout develop git merge "$release" -m "Intégration de la branche $release" --no-ff || die + fi - git checkout master + # mettre à jour la branche sur laquelle on se trouve + git checkout master || die + setx branch=git_get_branch - estepi "Suppression de la branche locale" - git branch -D "$release" + [ -n "$merge_delete" ] && action=delete +fi - if git_have_remote "$origin"; then - if [ -z "$UTOOLS_VCS_OFFLINE" ]; then - estepi "Suppression de la branche distante" - git push "$origin" ":$release" - elif git_have_rbranch "$release" "$origin"; then - eimportant "\ +if [ "$action" == delete ]; then + if [ -z "$force_delete" ]; then + # vérifier que la branche a été fusionnée + git_is_merged "$release" master || die "Refus de supprimer la branche $release: elle n'a pas été fusionnée dans master" + git_is_merged "$release" develop || die "Refus de supprimer la branche $release: elle n'a pas été fusionnée dans develop" + fi + + if [ "$branch" == "$release" ]; then + # si on est sur la branche en question, en sortir pour pouvoir la + # supprimer + git checkout master || die + fi + + estepi "Suppression de la branche locale" + git branch -D "$release" + + if git_have_remote "$origin"; then + if [ -z "$UTOOLS_VCS_OFFLINE" ]; then + estepi "Suppression de la branche distante" + git push "$origin" ":$release" + elif git_have_rbranch "$release" "$origin"; then + eimportant "\ La branche $origin/$release n'a plus lieu d'être, mais la configuration actuelle interdit de la supprimer. Veuillez le faire manuellement avec la commande suivante: $(qvals git push "$origin" ":$release")" - fi fi fi +fi -elif [ "$action" == diff ]; then +if [ "$action" == diff ]; then if [ -n "$log" ]; then if [ -n "$release" ]; then git log ${diff:+-p} master.."$release" From 10152b4a3f89241b6e236f6c364323fd08425c69 Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Tue, 31 Mar 2015 18:53:32 +0400 Subject: [PATCH 8/8] calcul de newver action delete --- prel | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/prel b/prel index f45e032..0a598dd 100755 --- a/prel +++ b/prel @@ -218,12 +218,6 @@ if [ "$action" == update ]; then ;; esac - if [ -z "$newver" ]; then - # le cas échéant, tenter de calculer la version en fonction de la - # release - [[ "$release" == release-* ]] && newver="${release#release-}" - fi - set -- "$release" "$1" action=checkout fi @@ -342,8 +336,13 @@ if [ "$action" == merge ]; then git checkout master || die git merge "$release" -m "Intégration de la branche $release" --no-ff || die + if [ -z "$newver" ]; then + # le cas échéant, tenter de calculer la version en fonction de la release + is_release_branch "$release" && newver="${release#release-}" + fi + if [ -n "$newver" ]; then - estep "Création du tag $newver" + estepn "Création du tag $newver" git tag "$newver" || die fi @@ -357,7 +356,7 @@ if [ "$action" == merge ]; then git checkout master || die setx branch=git_get_branch - [ -n "$merge_delete" ] && action=delete + action=delete fi if [ "$action" == delete ]; then