Added -k option to keep (feature|hotfix|relase) branch when calling 'finish'.
diff --git a/git-flow-feature b/git-flow-feature
index 8c7cacd..a38b0cc 100644
--- a/git-flow-feature
+++ b/git-flow-feature
@@ -44,7 +44,7 @@
usage() {
echo "usage: git flow feature [list] [-v]"
echo " git flow feature start [-F] <name> [<base>]"
- echo " git flow feature finish [-rF] <name|nameprefix>"
+ echo " git flow feature finish [-rFk] <name|nameprefix>"
echo " git flow feature publish <name>"
echo " git flow feature track <name>"
echo " git flow feature diff [<name|nameprefix>]"
@@ -180,7 +180,7 @@
parse_cmdline "$@"
# read arguments into global variables
- NAME=$1
+ NAME=${!#}
BRANCH=$PREFIX$NAME
}
@@ -232,6 +232,7 @@
cmd_finish() {
DEFINE_boolean fetch false "fetch from $ORIGIN before performing finish" F
DEFINE_boolean rebase false 'rebase instead of merge' r
+ DEFINE_boolean keep false 'keep branch after performing finish' k
parse_args "$@"
expand_nameprefix_arg
@@ -343,13 +344,23 @@
if flag fetch; then
git push "$ORIGIN" ":refs/heads/$BRANCH"
fi
- git branch -D "$BRANCH"
+
+
+ if flag keep; then
+ echo "Keep this branch" > /dev/null
+ else
+ git branch -d "$BRANCH"
+ fi
echo
echo "Summary of actions:"
echo "- The feature branch '$BRANCH' was merged into '$DEVELOP_BRANCH'"
#echo "- Merge conflicts were resolved" # TODO: Add this line when it's supported
- echo "- Feature branch '$BRANCH' has been removed"
+ if flag keep; then
+ echo "- Feature branch '$BRANCH' has been kept"
+ else
+ echo "- Feature branch '$BRANCH' has been removed"
+ fi
echo "- You are now on branch '$DEVELOP_BRANCH'"
echo
}
diff --git a/git-flow-hotfix b/git-flow-hotfix
index 84b2ac5..a05c4aa 100644
--- a/git-flow-hotfix
+++ b/git-flow-hotfix
@@ -45,7 +45,7 @@
usage() {
echo "usage: git flow hotfix [list] [-v]"
echo " git flow hotfix start [-F] <version> [<base>]"
- echo " git flow hotfix finish [-Fsump] <version>"
+ echo " git flow hotfix finish [-Fsumpk] <version>"
}
cmd_default() {
@@ -124,7 +124,7 @@
eval set -- "${FLAGS_ARGV}"
# read arguments into global variables
- VERSION=$1
+ VERSION=${!#}
BRANCH=$PREFIX$VERSION
}
@@ -194,6 +194,7 @@
DEFINE_string signingkey "" "use the given GPG-key for the digital signature (implies -s)" u
DEFINE_string message "" "use the given tag message" m
DEFINE_boolean push false "push to $ORIGIN after performing finish" p
+ DEFINE_boolean keep false 'keep branch after performing finish' k
parse_args "$@"
require_version_arg
@@ -257,7 +258,11 @@
fi
# delete branch
- git branch -d "$BRANCH"
+ if flag keep; then
+ echo "Keep this branch" > /dev/null
+ else
+ git branch -d "$BRANCH"
+ fi
if flag push; then
git push "$ORIGIN" "$DEVELOP_BRANCH" || \
@@ -274,7 +279,11 @@
echo "- Hotfix branch has been merged into '$MASTER_BRANCH'"
echo "- The hotfix was tagged '$VERSION_PREFIX$VERSION'"
echo "- Hotfix branch has been back-merged into '$DEVELOP_BRANCH'"
- echo "- Hotfix branch '$BRANCH' has been deleted"
+ if flag keep; then
+ echo "- Hotfix branch '$BRANCH' has been kept"
+ else
+ echo "- Hotfix branch '$BRANCH' has been deleted"
+ fi
if flag push; then
echo "- '$DEVELOP_BRANCH', '$MASTER_BRANCH' and tags have been pushed to '$ORIGIN'"
fi
diff --git a/git-flow-release b/git-flow-release
index b28bf42..d436bb1 100644
--- a/git-flow-release
+++ b/git-flow-release
@@ -45,7 +45,7 @@
usage() {
echo "usage: git flow release [list] [-v]"
echo " git flow release start [-F] <version>"
- echo " git flow release finish [-Fsump] <version>"
+ echo " git flow release finish [-Fsumpk] <version>"
echo " git flow release publish <name>"
echo " git flow release track <name>"
}
@@ -121,7 +121,7 @@
eval set -- "${FLAGS_ARGV}"
# read arguments into global variables
- VERSION=$1
+ VERSION=${!#}
BRANCH=$PREFIX$VERSION
}
@@ -197,6 +197,7 @@
DEFINE_string signingkey "" "use the given GPG-key for the digital signature (implies -s)" u
DEFINE_string message "" "use the given tag message" m
DEFINE_boolean push false "push to $ORIGIN after performing finish" p
+ DEFINE_boolean keep false 'keep branch after performing finish' k
parse_args "$@"
require_version_arg
@@ -262,7 +263,11 @@
fi
# delete branch
- git branch -d "$BRANCH"
+ if flag keep; then
+ echo "Keep this branch" > /dev/null
+ else
+ git branch -d "$BRANCH"
+ fi
if flag push; then
git push "$ORIGIN" "$DEVELOP_BRANCH" || \
@@ -281,7 +286,11 @@
echo "- Release branch has been merged into '$MASTER_BRANCH'"
echo "- The release was tagged '$tagname'"
echo "- Release branch has been back-merged into '$DEVELOP_BRANCH'"
- echo "- Release branch '$BRANCH' has been deleted"
+ if flag keep; then
+ echo "- Release branch '$BRANCH' has been kept"
+ else
+ echo "- Release branch '$BRANCH' has been deleted"
+ fi
if flag push; then
echo "- '$DEVELOP_BRANCH', '$MASTER_BRANCH' and tags have been pushed to '$ORIGIN'"
echo "- Release branch '$BRANCH' in '$ORIGIN' has been deleted."