diff --git a/prel b/prel index 0adbd2f..645f995 100755 --- a/prel +++ b/prel @@ -84,7 +84,7 @@ OPTIONS -n, --no-write Si une nouvelle branche est créée avec -u, NE PAS mettre à jour le fichier VERSION.txt avec pver. Utiliser cette option si la mise à jour - du numéro de version doit être faite par manière particulière. + du numéro de version doit être faite d'une manière particulière. -e, --edit Editer le fichier CHANGES.txt autogénéré par -u -w Cette option est surtout utile si -m est utilisé avec -u, pour donner la @@ -173,6 +173,12 @@ fi git_ensure_gitvcs +push_branches=() +push_tags=() +push_deferred= +[ -n "$UTOOLS_VCS_OFFLINE" ] && push_deferred= || push_deferred=1 +[ -n "$update" -a -n "$merge" ] && UTOOLS_VCS_OFFLINE=1 + setx branch=git_get_branch if [ "$action" == update ]; then @@ -331,12 +337,14 @@ $modifs" git_fast_forward "$release" "" "$origin" fi + set -- "$release" 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 + elif [ "$r" -eq 0 ]; then + action=push + array_addu push_branches "$release" else exit "$r" fi @@ -391,11 +399,12 @@ if [ "$action" == merge ]; then if [ -n "$newver" ]; then estepn "Création du tag $newver" + array_addu push_tags "$newver" git tag --force "$newver" || die if git_have_remote "$origin"; then if [ -z "$UTOOLS_VCS_OFFLINE" ]; then git push "$origin" tag "$newver" - else + elif [ -z "$push_deferred" ]; then eimportant "Le tag $newver n'a pas été poussé vers l'origine. Il faudra le faire manuellement avec la commande suivante: $(qvals git push "$origin" tag "$newver") @@ -445,6 +454,24 @@ Veuillez le faire manuellement avec la commande suivante: $(qvals git push "$origin" ":$release")" fi fi + + action=push + array_addu push_branches master + array_addu push_branches develop +fi + +if [ "$action" == push -a -n "$push_deferred" ]; then + if git_have_remote "$origin"; then + estepi "Mise à jour de l'origine" + for tag in "${push_tags[@]}"; do + git push "$origin" tag "$tag" + done + for branch in "${push_branches[@]}"; do + setx rbranch=git_get_branch_rbranch "$branch" "$origin" + rbranch="${rbranch#refs/remotes/$origin/}" + git push "$origin" "$branch:$rbranch" + done + fi fi if [ "$action" == summary ]; then