mettre à jour la version avec pver
This commit is contained in:
		
							parent
							
								
									f98c977cde
								
							
						
					
					
						commit
						8d4d35dde5
					
				
							
								
								
									
										137
									
								
								todo/prel
									
									
									
									
									
								
							
							
						
						
									
										137
									
								
								todo/prel
									
									
									
									
									
								
							| @ -81,6 +81,13 @@ OPTIONS | ||||
|         jusqu'à la release finale. Ainsi, la branche de release est nommée | ||||
|         d'après la version finale, mais le projet peut recevoir une version de | ||||
|         pré-release incrémentale. | ||||
|     -w, --write | ||||
|         Si une nouvelle branche est créée avec -u, mettre à jour le fichier | ||||
|         VERSION.txt avec pver. C'est l'option par défaut. | ||||
|     -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. | ||||
| 
 | ||||
|     -m, --merge | ||||
|         Si la branche actuelle est une branche de release, ou s'il existe une | ||||
| @ -102,6 +109,7 @@ origin=origin | ||||
| action=checkout | ||||
| incversion= | ||||
| pver_opts=() | ||||
| write=1 | ||||
| log= | ||||
| diff= | ||||
| parse_opts "${PRETTYOPTS[@]}" \ | ||||
| @ -117,6 +125,8 @@ parse_opts "${PRETTYOPTS[@]}" \ | ||||
|     -z,--minor '$action=update; incversion=minor' \ | ||||
|     -p,--patchlevel '$action=update; incversion=patchlevel' \ | ||||
|     -v: '$action=update; add@ pver_opts' \ | ||||
|     -w,--write write=1 \ | ||||
|     -n,--no-write write= \ | ||||
|     -m,--merge action=merge \ | ||||
|     -l,--log '$action=diff; log=1' \ | ||||
|     -d,--diff '$action=diff; diff=1' \ | ||||
| @ -131,13 +141,14 @@ git_ensure_gitvcs | ||||
| setx branch=git_get_branch | ||||
| 
 | ||||
| if [ "$action" == update ]; then | ||||
|     setx version=pver -g "" | ||||
|     setx oldver=pver -g "" | ||||
|     newver= | ||||
| 
 | ||||
|     if [ "$incversion" == auto ]; then | ||||
|         if [ ${#pver_opts[*]} -gt 0 ]; then | ||||
|             # des options ont été spécifiées, les honorer | ||||
|             setx specv=pver -s "$version" "${pver_opts[@]}" | ||||
|             release="release-$specv" | ||||
|             setx newver=pver -s "$oldver" "${pver_opts[@]}" | ||||
|             release="release-$newver" | ||||
|         else | ||||
|             # sinon, prendre une décision en fonction des branches de release | ||||
|             # qui existent déjà | ||||
| @ -161,9 +172,9 @@ if [ "$action" == update ]; then | ||||
|     fi | ||||
|     case "$incversion" in | ||||
|     menu) | ||||
|         setx majorv=pver -s "$version" -ux "${pver_opts[@]}" | ||||
|         setx minorv=pver -s "$version" -uz "${pver_opts[@]}" | ||||
|         setx patchlevelv=pver -g "$version" -up "${pver_opts[@]}" | ||||
|         setx majorv=pver -s "$oldver" -ux "${pver_opts[@]}" | ||||
|         setx minorv=pver -s "$oldver" -uz "${pver_opts[@]}" | ||||
|         setx patchlevelv=pver -g "$oldver" -up "${pver_opts[@]}" | ||||
|         release="release-$minorv" | ||||
|         branches=("release-$majorv" "release-$minorv" "release-$patchlevelv" master) | ||||
|         simple_menu release branches \ | ||||
| @ -171,19 +182,25 @@ if [ "$action" == update ]; then | ||||
|             -m "Veuillez choisir la branche à créer" | ||||
|         ;; | ||||
|     major) | ||||
|         setx majorv=pver -s "$version" -ux "${pver_opts[@]}" | ||||
|         release="release-$majorv" | ||||
|         setx newver=pver -s "$oldver" -ux "${pver_opts[@]}" | ||||
|         release="release-$newver" | ||||
|         ;; | ||||
|     minor) | ||||
|         setx minorv=pver -s "$version" -uz "${pver_opts[@]}" | ||||
|         release="release-$minorv" | ||||
|         setx newver=pver -s "$oldver" -uz "${pver_opts[@]}" | ||||
|         release="release-$newver" | ||||
|         ;; | ||||
|     patchlevel) | ||||
|         setx patchlevelv=pver -g "$version" -up "${pver_opts[@]}" | ||||
|         release="release-$patchlevelv" | ||||
|         setx newver=pver -g "$oldver" -up "${pver_opts[@]}" | ||||
|         release="release-$newver" | ||||
|         ;; | ||||
|     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 | ||||
| @ -223,8 +240,9 @@ if [ "$action" == checkout ]; then | ||||
|     # Créer/basculer vers une release branch | ||||
|     git_ensure_cleancheckout | ||||
|     is_any_branch "$release" master release || die "$release: ce n'est pas une release branch" | ||||
|     r=0 | ||||
|     if git_have_branch "$release"; then | ||||
|         git checkout "$release" | ||||
|         git checkout "$release"; r=$? | ||||
|     else | ||||
|         estepn "\ | ||||
| Vous allez créer la nouvelle release branch ${COULEUR_VERTE}$release${COULEUR_NORMALE} | ||||
| @ -233,8 +251,97 @@ Vous allez créer la nouvelle release branch ${COULEUR_VERTE}$release${COULEUR_N | ||||
| 
 | ||||
|         git_ensure_branch "$release" "$source" "$origin" | ||||
|         [ $? -eq 2 ] && die "Impossible de créer la branche $release. Veuillez vérifier que la branche $source existe" | ||||
|         git checkout "$release" | ||||
|         git checkout "$release"; r=$? | ||||
| 
 | ||||
|         if [ "$r" -eq 0 -a -n "$newver" ]; then | ||||
|             if pver -uv "$newver"; then | ||||
|                 git add -A | ||||
|                 git commit -m "Initialiser la version $newver" | ||||
|             fi | ||||
|         fi | ||||
|     fi | ||||
| 
 | ||||
|     exit $? | ||||
|     exit "$r" | ||||
| fi | ||||
| 
 | ||||
| setx -a branches=list_release_branches | ||||
| setb have_release_branches=[ ${#branches[*]} -gt 0 ] | ||||
| 
 | ||||
| release="$1" | ||||
| if [ -n "$release" ]; then | ||||
|     if [ -n "$have_release_branches" ]; then | ||||
|         is_release_branch "$release" || die "$release: ce n'est pas une release branch" | ||||
|     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" | ||||
| elif is_release_branch "$branch"; then | ||||
|     release="$branch" | ||||
| fi | ||||
| 
 | ||||
| if [ "$action" == merge ]; then | ||||
|     confirm= | ||||
| 
 | ||||
|     if [ -z "$release" ]; then | ||||
|         if [ ${#branches[*]} -eq 0 ]; then | ||||
|             ewarn "Aucune release branch n'a été préparée. | ||||
| Si vous continuez, la branche develop sera fusionnée directement dans master." | ||||
|             release=develop | ||||
|             confirm=-y | ||||
|         elif [ ${#branches[*]} -eq 1 ]; then | ||||
|             release="${branches[0]}" | ||||
|             estepn "Autosélection de $release" | ||||
|         else | ||||
|             default_release="$branch" | ||||
|             array_contains branches "$default_release" || default_release="${branches[0]}" | ||||
|             simple_menu release branches -d "$default_release" \ | ||||
|                 -t "Choix de la release branch" \ | ||||
|                 -m "Veuillez choisir la branche" | ||||
|         fi | ||||
|     fi | ||||
| 
 | ||||
|     estepn "\ | ||||
| Intégration de la branche ${COULEUR_VERTE}$release${COULEUR_NORMALE} | ||||
| dans la branche de destination ${COULEUR_BLEUE}master${COULEUR_NORMALE}" | ||||
|     ask_yesno $confirm "Voulez-vous continuer?" O || die | ||||
| 
 | ||||
|     git checkout master | ||||
|     git merge "$release" -m "Intégration de la release branch $release" --no-ff || die | ||||
| 
 | ||||
|     if [ "$release" != develop ]; then | ||||
|         git checkout develop | ||||
|         git merge "$release" -m "Intégration de la release branch $release" --no-ff || die | ||||
| 
 | ||||
|         git checkout master | ||||
| 
 | ||||
|         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" | ||||
|             else | ||||
|                 eimportant "\ | ||||
| La branche $release 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" ":$release")" | ||||
|             fi | ||||
|         fi | ||||
|     fi | ||||
| 
 | ||||
| elif [ "$action" == diff ]; then | ||||
|     if [ -n "$log" ]; then | ||||
|         if [ -n "$release" ]; then | ||||
|             git log ${diff:+-p} master.."$release" | ||||
|         else | ||||
|             git log ${diff:+-p} master..develop | ||||
|         fi | ||||
|     elif [ -n "$diff" ]; then | ||||
|         if [ -n "$release" ]; then | ||||
|             git diff master.."$release" | ||||
|         else | ||||
|             git diff master..develop | ||||
|         fi | ||||
|     fi | ||||
| fi | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user