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
|