Intégration de la branche pdev-merges
This commit is contained in:
commit
f581aa9ec0
57
pdev
57
pdev
|
@ -54,15 +54,33 @@ OPTIONS
|
||||||
qui la traque, et pour chaque feature branche locale, vérifier qu'il
|
qui la traque, et pour chaque feature branche locale, vérifier qu'il
|
||||||
existe une branche distante associée. Cette option nécessite --online
|
existe une branche distante associée. Cette option nécessite --online
|
||||||
|
|
||||||
|
-s, --squash COMMIT_MSG
|
||||||
|
Si la branche actuelle est une feature branch, la merger comme un seul
|
||||||
|
commit avec le message COMMIT_MSG dans develop puis la supprimer. Puis
|
||||||
|
basculer sur la branche develop.
|
||||||
|
Cette option ne devrait pas être utilisée avec -k, puisque bien que les
|
||||||
|
modifications soient mergées, la branche elle-même n'est pas considérée
|
||||||
|
comme mergée. Les résultats sont donc indéfinis si la branche est mergée
|
||||||
|
à plusieurs reprises.
|
||||||
|
-b, --rebase
|
||||||
|
Si la branche actuelle est une feature branch, lancer 'git rebase -i'
|
||||||
|
sur la feature branch. Cela permet de réordonner les commits pour
|
||||||
|
nettoyer l'historique avant de fusionner la branche avec -m
|
||||||
|
Cette option devrait le cas échéant être utilisée immédiatement avant -m
|
||||||
|
ou alors il faut forcer le push et communiquer avec l'équipe sur le fait
|
||||||
|
que la branche de feature a été rebasée.
|
||||||
-m, --merge
|
-m, --merge
|
||||||
Si la branche actuelle est une feature branch, la merger dans develop
|
Si la branche actuelle est une feature branch, la merger dans develop
|
||||||
puis la supprimer. Puis basculer sur la branche develop.
|
puis la supprimer. Puis basculer sur la branche develop.
|
||||||
--merge-log
|
--merge-log
|
||||||
Ajouter un résumé des modifications sur la feature branch dans le
|
Ajouter un résumé des modifications sur la feature branch en ajoutant le
|
||||||
message du merge
|
log en une ligne de chaque commit dans le message du merge. Cette option
|
||||||
|
n'est en principe pas nécessaire puisque 'prel -um' intègre la liste des
|
||||||
|
commits dans CHANGES.txt
|
||||||
-k, --keep
|
-k, --keep
|
||||||
Avec l'option -m, ne pas supprimer une feature branch après l'avoir
|
Avec l'option -m, ne pas supprimer une feature branch après l'avoir
|
||||||
fusionnée dans develop.
|
fusionnée dans develop. Cela permet d'intégrer les modifications petit à
|
||||||
|
petit.
|
||||||
--delete
|
--delete
|
||||||
Supprimer une feature branch, à condition qu'elle aie déjà été
|
Supprimer une feature branch, à condition qu'elle aie déjà été
|
||||||
entièrement fusionnée dans la branch develop
|
entièrement fusionnée dans la branch develop
|
||||||
|
@ -84,6 +102,8 @@ OPTIONS
|
||||||
projdir=
|
projdir=
|
||||||
origin=origin
|
origin=origin
|
||||||
action=branch
|
action=branch
|
||||||
|
squash_msg=
|
||||||
|
rebase_int=
|
||||||
merge_log=
|
merge_log=
|
||||||
merge_delete=1
|
merge_delete=1
|
||||||
force_delete=
|
force_delete=
|
||||||
|
@ -96,6 +116,8 @@ parse_opts "${PRETTYOPTS[@]}" \
|
||||||
-o,--offline UTOOLS_VCS_OFFLINE=1 \
|
-o,--offline UTOOLS_VCS_OFFLINE=1 \
|
||||||
--online UTOOLS_VCS_OFFLINE= \
|
--online UTOOLS_VCS_OFFLINE= \
|
||||||
--sync action=sync \
|
--sync action=sync \
|
||||||
|
-s:,--squash: '$action=squash; set@ squash_msg' \
|
||||||
|
-b,--rebase '$action=none; rebase_int=1' \
|
||||||
-m,--merge action=merge \
|
-m,--merge action=merge \
|
||||||
--merge-log merge_log=1 \
|
--merge-log merge_log=1 \
|
||||||
-k,--keep merge_delete= \
|
-k,--keep merge_delete= \
|
||||||
|
@ -192,7 +214,17 @@ elif is_feature_branch "$branch"; then
|
||||||
feature="$branch"
|
feature="$branch"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$action" == merge ]; then
|
if [ -n "$rebase_int" ]; then
|
||||||
|
if [ "$branch" != "$feature" ]; then
|
||||||
|
# s'assurer qu'on est sur la bonne branche
|
||||||
|
git checkout "$feature" || die
|
||||||
|
branch=feature
|
||||||
|
fi
|
||||||
|
setx base=git merge-base "$feature" develop
|
||||||
|
git rebase -i "$base" || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$action" == squash -o "$action" == merge ]; then
|
||||||
if [ -z "$feature" ]; then
|
if [ -z "$feature" ]; then
|
||||||
setx -a branches=list_feature_branches
|
setx -a branches=list_feature_branches
|
||||||
if [ ${#branches[*]} -eq 0 ]; then
|
if [ ${#branches[*]} -eq 0 ]; then
|
||||||
|
@ -213,16 +245,27 @@ if [ "$action" == merge ]; then
|
||||||
ask_yesno "Voulez-vous continuer?" O || die
|
ask_yesno "Voulez-vous continuer?" O || die
|
||||||
|
|
||||||
# calculer la suite des modifications
|
# calculer la suite des modifications
|
||||||
mergemsg="Intégration de la branche $feature"
|
merge_msg="Intégration de la branche $feature"
|
||||||
if [ -n "$merge_log" ]; then
|
if [ -n "$merge_log" ]; then
|
||||||
setx mergebase=git merge-base develop "$feature"
|
setx mergebase=git merge-base develop "$feature"
|
||||||
setx modifs=git log --oneline "$mergebase..$feature"
|
setx modifs=git log --oneline "$mergebase..$feature"
|
||||||
[ -n "$modifs" ] && mergemsg="$mergemsg
|
[ -n "$modifs" ] && merge_msg="$merge_msg
|
||||||
$modifs"
|
$modifs"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
git checkout develop || die
|
git checkout develop || die
|
||||||
git merge "$feature" -m "$mergemsg" --no-ff || die
|
if [ "$action" == squash ]; then
|
||||||
|
[ -n "$squash_msg" ] || squash_msg="$merge_msg"
|
||||||
|
git merge "$feature" --squash || die
|
||||||
|
git commit -m "$squash_msg" || die
|
||||||
|
# il faut forcer la suppression de la branche, puisqu'elle n'est pas
|
||||||
|
# considérée comme mergée
|
||||||
|
force_delete=1
|
||||||
|
elif [ "$action" == merge ]; then
|
||||||
|
git merge "$feature" -m "$merge_msg" --no-ff || die
|
||||||
|
else
|
||||||
|
die "$action: action imprévue"
|
||||||
|
fi
|
||||||
|
|
||||||
# mettre à jour la branche sur laquelle on se trouve
|
# mettre à jour la branche sur laquelle on se trouve
|
||||||
setx branch=git_get_branch
|
setx branch=git_get_branch
|
||||||
|
|
Loading…
Reference in New Issue