Add function gitflow_has_prefixes_configured(), to check whether a repo is
fully initialized for use with gitflow.
Add a means of only asking for the missing gitflow definitions, not all.
(Of course, redefining all is always possible using the -f (--force) flag
of init.)
diff --git a/git-flow-init b/git-flow-init
index 9dce1df..45c7171 100644
--- a/git-flow-init
+++ b/git-flow-init
@@ -184,39 +184,53 @@
local prefix
# Feature branches
- default_suggestion=$(git config --get gitflow.prefix.feature || echo feature/)
- echo "Feature branches? [$default_suggestion] \c"
- read answer
- [ "$answer" = "-" ] && prefix= || prefix=${answer:-$default_suggestion}
- git config gitflow.prefix.feature "$prefix"
+ if ! git config --get gitflow.prefix.feature >/dev/null 2>&1 || flag force; then
+ default_suggestion=$(git config --get gitflow.prefix.feature || echo feature/)
+ echo "Feature branches? [$default_suggestion] \c"
+ read answer
+ [ "$answer" = "-" ] && prefix= || prefix=${answer:-$default_suggestion}
+ git config gitflow.prefix.feature "$prefix"
+ fi
# Release branches
- default_suggestion=$(git config --get gitflow.prefix.release || echo release/)
- echo "Release branches? [$default_suggestion] \c"
- read answer
- [ "$answer" = "-" ] && prefix= || prefix=${answer:-$default_suggestion}
- git config gitflow.prefix.release "$prefix"
+ if ! git config --get gitflow.prefix.release >/dev/null 2>&1 || flag force; then
+ default_suggestion=$(git config --get gitflow.prefix.release || echo release/)
+ echo "Release branches? [$default_suggestion] \c"
+ read answer
+ [ "$answer" = "-" ] && prefix= || prefix=${answer:-$default_suggestion}
+ git config gitflow.prefix.release "$prefix"
+ fi
+
# Hotfix branches
- default_suggestion=$(git config --get gitflow.prefix.hotfix || echo hotfix/)
- echo "Hotfix branches? [$default_suggestion] \c"
- read answer
- [ "$answer" = "-" ] && prefix= || prefix=${answer:-$default_suggestion}
- git config gitflow.prefix.hotfix "$prefix"
+ if ! git config --get gitflow.prefix.hotfix >/dev/null 2>&1 || flag force; then
+ default_suggestion=$(git config --get gitflow.prefix.hotfix || echo hotfix/)
+ echo "Hotfix branches? [$default_suggestion] \c"
+ read answer
+ [ "$answer" = "-" ] && prefix= || prefix=${answer:-$default_suggestion}
+ git config gitflow.prefix.hotfix "$prefix"
+ fi
+
# Support branches
- default_suggestion=$(git config --get gitflow.prefix.support || echo support/)
- echo "Support branches? [$default_suggestion] \c"
- read answer
- [ "$answer" = "-" ] && prefix= || prefix=${answer:-$default_suggestion}
- git config gitflow.prefix.support "$prefix"
+ if ! git config --get gitflow.prefix.support >/dev/null 2>&1 || flag force; then
+ default_suggestion=$(git config --get gitflow.prefix.support || echo support/)
+ echo "Support branches? [$default_suggestion] \c"
+ read answer
+ [ "$answer" = "-" ] && prefix= || prefix=${answer:-$default_suggestion}
+ git config gitflow.prefix.support "$prefix"
+ fi
+
# Version tag prefix
- default_suggestion=$(git config --get gitflow.prefix.versiontag || echo "")
- echo "Version tag prefix? [$default_suggestion] \c"
- read answer
- [ "$answer" = "-" ] && prefix= || prefix=${answer:-$default_suggestion}
- git config gitflow.prefix.versiontag "$prefix"
+ if ! git config --get gitflow.prefix.versiontag >/dev/null 2>&1 || flag force; then
+ default_suggestion=$(git config --get gitflow.prefix.versiontag || echo "")
+ echo "Version tag prefix? [$default_suggestion] \c"
+ read answer
+ [ "$answer" = "-" ] && prefix= || prefix=${answer:-$default_suggestion}
+ git config gitflow.prefix.versiontag "$prefix"
+ fi
+
# TODO: what to do with origin?
}
diff --git a/gitflow-common b/gitflow-common
index 8aaa357..6e5056e 100644
--- a/gitflow-common
+++ b/gitflow-common
@@ -49,12 +49,20 @@
[ "$develop" != "" ] && gitflow_local_branch_exists "$develop"
}
+gitflow_has_prefixes_configured() {
+ git config --get gitflow.prefix.feature >/dev/null 2>&1 && \
+ git config --get gitflow.prefix.release >/dev/null 2>&1 && \
+ git config --get gitflow.prefix.hotfix >/dev/null 2>&1 && \
+ git config --get gitflow.prefix.support >/dev/null 2>&1 && \
+ git config --get gitflow.prefix.versiontag >/dev/null 2>&1
+}
+
gitflow_is_initialized() {
- gitflow_has_master_configured && \
- gitflow_has_develop_configured && \
- # they should be different
- [ "$(git config --get gitflow.branch.master)" != \
- "$(git config --get gitflow.branch.develop)" ]
+ gitflow_has_master_configured && \
+ gitflow_has_develop_configured && \
+ [ "$(git config --get gitflow.branch.master)" != \
+ "$(git config --get gitflow.branch.develop)" ] && \
+ gitflow_has_prefixes_configured
}
# get all available branches