61 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | |
| source "$(dirname -- "$0")/../load.sh" || exit 1
 | |
| require: git pman pman.conf
 | |
| 
 | |
| git_cleancheckout_DIRTY="\
 | |
| Vous avez des modifications locales.
 | |
| Enregistrez ces modifications avant de créer une nouvelle branche"
 | |
| 
 | |
| chdir=
 | |
| Origin=
 | |
| ConfigBranch=
 | |
| ConfigFile=
 | |
| [ -z "$PMAN_NO_PUSH" ] && Push=1 || Push=
 | |
| args=(
 | |
|     "créer une branche de feature"
 | |
|     "<feature>"
 | |
|     -d:,--chdir:BASEDIR chdir= "répertoire dans lequel se placer avant de lancer les opérations"
 | |
|     -O:,--origin Origin= "++\
 | |
| origine à partir de laquelle les branches distantes sont considérées"
 | |
|     -B:,--config-branch ConfigBranch= "++\
 | |
| branche à partir de laquelle charger la configuration"
 | |
|     -c:,--config-file:CONFIG ConfigFile= "++\
 | |
| fichier de configuration des branches. cette option est prioritaire sur --config-branch
 | |
| par défaut, utiliser le fichier .pman.conf dans le répertoire du dépôt s'il existe"
 | |
|     -n,--no-push Push= "\
 | |
| ne pas pousser les branches vers leur origine après la fusion"
 | |
|     --push Push=1 "++\
 | |
| pousser les branches vers leur origine après la fusion.
 | |
| c'est l'option par défaut"
 | |
| )
 | |
| parse_args "$@"; set -- "${args[@]}"
 | |
| 
 | |
| # charger la configuration
 | |
| ensure_gitdir "$chdir"
 | |
| load_branches all
 | |
| load_config "$MYNAME"
 | |
| load_branches current
 | |
| 
 | |
| branch="$1"
 | |
| if [ -z "$branch" -a ${#FeatureBranches[*]} -eq 1 ]; then
 | |
|     branch="${FeatureBranches[0]}"
 | |
| fi
 | |
| [ -n "$branch" ] || die "Vous devez spécifier la branche à créer"
 | |
| branch="$FEATURE${branch#$FEATURE}"
 | |
| 
 | |
| resolve_should_push
 | |
| git_ensure_cleancheckout
 | |
| 
 | |
| if array_contains AllBranches "$branch"; then
 | |
|     git checkout -q "$branch"
 | |
| else
 | |
|     # si la branche source n'existe pas, la créer
 | |
|     args=(--origin "$Origin")
 | |
|     if [ -n "$ConfigFile" ]; then args+=(--config-file "$ConfigFile")
 | |
|     elif [ -n "$ConfigBranch" ]; then args+=(--config-branch "$ConfigBranch")
 | |
|     fi
 | |
|     [ -z "$Push" ] && args+=(--no-push)
 | |
|     exec "$MYDIR/pman" "${args[@]}" "$branch"
 | |
| fi
 |