make master and develop branch names configurable
diff --git a/TODO.mdown b/TODO.mdown
index 0bb08db..38c51bb 100644
--- a/TODO.mdown
+++ b/TODO.mdown
@@ -3,7 +3,6 @@
General configuration
---------------------
-- Support configurable naming for fixed branch names 'master' and 'develop'
- Support configurable naming conventions (i.e. name prefixes) for supporting
branches, instead of fixed 'release-\*' and 'hotfix-\*'
diff --git a/git-flow b/git-flow
index 7a5c4cc..0adac5c 100755
--- a/git-flow
+++ b/git-flow
@@ -18,6 +18,10 @@
set -x
fi
+export GITFLOW_DIR=$(dirname "$0")
+export MASTER_BRANCH=$(git config --get gitflow.branch.master || echo master)
+export DEVELOP_BRANCH=$(git config --get gitflow.branch.develop || echo develop)
+
warn() { echo "$@" >&2; }
die() { warn "$@"; exit 1; }
has() { [[ " ${*:2} " == *" $1 "* ]]; }
@@ -36,8 +40,6 @@
exit 1
fi
- export GITFLOW_DIR=$(dirname "$0")
-
# sanity checks
ACTION="$1"
BTYPE="$2"
diff --git a/git-flow-feature b/git-flow-feature
index fc7a794..b48e893 100755
--- a/git-flow-feature
+++ b/git-flow-feature
@@ -34,7 +34,7 @@
parse_args() {
NAME="$1"
- BASE="${2:-develop}"
+ BASE="${2:-$DEVELOP_BRANCH}"
if [ "$NAME" = "" ]; then
echo "Missing argument <name>."
usage
@@ -54,9 +54,9 @@
# sanity checks
gitflow_check_clean_working_tree
gitflow_require_branch_absent $BRANCH
- if [ "$BASE" = "develop" ]; then
- git fetch origin develop
- gitflow_require_branches_equal develop origin/develop
+ if [ "$BASE" = "$DEVELOP_BRANCH" ]; then
+ git fetch origin $DEVELOP_BRANCH
+ gitflow_require_branches_equal $DEVELOP_BRANCH origin/$DEVELOP_BRANCH
fi
# create branch
@@ -83,8 +83,8 @@
if has origin/$BRANCH $REMOTE_BRANCHES; then
gitflow_require_branches_equal $BRANCH origin/$BRANCH
fi
- if [ "$BASE" = "develop" ]; then
- gitflow_require_branches_equal develop origin/develop
+ if [ "$BASE" = "$DEVELOP_BRANCH" ]; then
+ gitflow_require_branches_equal $DEVELOP_BRANCH origin/$DEVELOP_BRANCH
fi
# merge into BASE
diff --git a/git-flow-hotfix b/git-flow-hotfix
index cf4e008..d5542f8 100755
--- a/git-flow-hotfix
+++ b/git-flow-hotfix
@@ -29,7 +29,7 @@
parse_args() {
VERSION="$1"
- BASE="${2:-master}"
+ BASE="${2:-$MASTER_BRANCH}"
if [ "$VERSION" = "" ]; then
echo "Missing argument <version>."
usage
@@ -49,7 +49,7 @@
# sanity checks
gitflow_check_clean_working_tree
git fetch origin
- gitflow_require_branches_equal master origin/master
+ gitflow_require_branches_equal $MASTER_BRANCH origin/$MASTER_BRANCH
gitflow_require_branch_absent $BRANCH
# create branch
@@ -74,10 +74,10 @@
# sanity checks
gitflow_check_clean_working_tree
- git fetch origin master
- git fetch origin develop
- gitflow_require_branches_equal master origin/master
- gitflow_require_branches_equal develop origin/develop
+ git fetch origin $MASTER_BRANCH
+ git fetch origin $DEVELOP_BRANCH
+ gitflow_require_branches_equal $MASTER_BRANCH origin/$MASTER_BRANCH
+ gitflow_require_branches_equal $DEVELOP_BRANCH origin/$DEVELOP_BRANCH
# merge into BASE
git checkout $BASE
@@ -86,8 +86,8 @@
# merge into develop if we fixed a master issue
# TODO: merge into support branch
- if [ "$BASE" = "master" ]; then
- git checkout develop
+ if [ "$BASE" = "$MASTER_BRANCH" ]; then
+ git checkout $DEVELOP_BRANCH
git merge --no-ff $BRANCH
fi
@@ -102,8 +102,8 @@
echo "- Latest objects have been fetched from 'origin'"
echo "- Hotfix branch has been merged into '$BASE'"
echo "- The hotfix was tagged 'v$VERSION'"
- if [ "$BASE" = "master" ]; then
- echo "- Hotfix branch has been back-merged into 'develop'"
+ if [ "$BASE" = "$MASTER_BRANCH" ]; then
+ echo "- Hotfix branch has been back-merged into '$DEVELOP_BRANCH'"
fi
echo "- Hotfix branch '$BRANCH' has been deleted"
echo
diff --git a/git-flow-release b/git-flow-release
index 3f5683e..35b4fbe 100755
--- a/git-flow-release
+++ b/git-flow-release
@@ -49,15 +49,15 @@
# sanity checks
gitflow_check_clean_working_tree
git fetch origin
- gitflow_require_branches_equal develop origin/develop
+ gitflow_require_branches_equal $DEVELOP_BRANCH origin/$DEVELOP_BRANCH
gitflow_require_branch_absent $BRANCH
# create branch
- git checkout -b $BRANCH develop
+ git checkout -b $BRANCH $DEVELOP_BRANCH
echo
echo "Summary of actions:"
- echo "- A new branch '$BRANCH' was created, based on 'develop'"
+ echo "- A new branch '$BRANCH' was created, based on '$DEVELOP_BRANCH'"
echo "- You are now on branch '$BRANCH'"
echo
echo "Follow-up actions:"
@@ -75,16 +75,16 @@
# sanity checks
gitflow_check_clean_working_tree
git fetch origin
- gitflow_require_branches_equal master origin/master
- gitflow_require_branches_equal develop origin/develop
+ gitflow_require_branches_equal $MASTER_BRANCH origin/$MASTER_BRANCH
+ gitflow_require_branches_equal $DEVELOP_BRANCH origin/$DEVELOP_BRANCH
# merge into master
- git checkout master
+ git checkout $MASTER_BRANCH
git merge --no-ff $BRANCH
git tag v$VERSION
# merge into develop
- git checkout develop
+ git checkout $DEVELOP_BRANCH
git merge --no-ff $BRANCH
# delete branch
@@ -96,9 +96,9 @@
echo
echo "Summary of actions:"
echo "- Latest objects have been fetched from 'origin'"
- echo "- Release branch has been merged into 'master'"
+ echo "- Release branch has been merged into '$MASTER_BRANCH'"
echo "- The release was tagged 'v$VERSION'"
- echo "- Release branch has been back-merged into 'develop'"
+ echo "- Release branch has been back-merged into '$DEVELOP_BRANCH'"
echo "- Release branch '$BRANCH' has been deleted"
echo
}