#!/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" "" -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