| #!/bin/sh |
| # |
| # gitflow -- A collection of Git wrapper scripts to provide high-level |
| # repository operations for Vincent Driessen's branching model: |
| # |
| # Original blog post presenting this model is found at: |
| # http://nvie.com/archives/323 |
| # |
| # Feel free to contribute to this project at: |
| # http://github.com/nvie/gitflow |
| # |
| # Copyright (c) 2010 by Vincent Driessen |
| # |
| |
| usage() { |
| echo "usage: gitflow start feature <name> [<base>]" |
| echo " gitflow finish feature <name>" |
| } |
| |
| parse_args() { |
| FEATURE="$1" |
| if [ $# -eq 2 ]; then |
| BASE="$2" |
| else |
| BASE="develop" |
| fi |
| if [ "$FEATURE" = "" ]; then |
| echo "Missing argument <release>." |
| usage |
| exit 1 |
| fi |
| } |
| |
| start() { |
| parse_args "$@" |
| |
| # Checks |
| gitflow_check_clean_working_tree |
| gitflow_require_branch_absent "$FEATURE" |
| if [ "$BASE" = "develop" ]; then |
| gitflow_require_branches_equal 'develop' 'origin/develop' |
| fi |
| |
| # All checks passed, ready to roll |
| echo "git checkout -b $FEATURE $BASE" |
| } |
| |
| finish() { |
| parse_args "$@" |
| |
| # Checks |
| gitflow_check_clean_working_tree |
| gitflow_require_branch "$FEATURE" |
| if [ "$BASE" = "develop" ]; then |
| gitflow_require_branches_equal 'develop' 'origin/develop' |
| fi |
| |
| # All checks passed, ready to roll |
| echo "git checkout $BASE" |
| echo "git merge --no-ff $FEATURE" |
| echo "git branch -d $FEATURE" |
| } |
| |