Skip to content
This repository has been archived by the owner on Jun 19, 2023. It is now read-only.

Commit

Permalink
Merge branch 'release/1.3.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
petervanderdoes committed Nov 13, 2012
2 parents c438d21 + 14606a2 commit 43994f4
Show file tree
Hide file tree
Showing 12 changed files with 661 additions and 204 deletions.
23 changes: 23 additions & 0 deletions Changes.mdown
Expand Up @@ -13,7 +13,30 @@

# Changelog

#### 1.3.0
[Peter van der Does][petervanderdoes]
* Make name in feature publish optional.
Instead of always having to add the branch when doing a git flow feature
publish, the name should be optional.
When a name isn't given, the current branch, if it's a feature branch,
will be published.
* Add option to select configuration file usage
As with the regular git config, git flow init now has the
option --file, --global, --system and --local. --local is default.
* Add a new command.
New command git flow config is added.
With this command you can see your current git flow configuration and you
can also set the options.
* Environment settings for git-flow only.
With git you can set environment variables to change behavior, like
GIT_MERGE_AUTOEDIT for example.
You can add these exports to the file ~/.gitflow_export if you only want
to set the environment variable for git-flow.
* Bugfix: Missing command hotfix track.
The command git flow hotfix track is not implemented.

#### 1.2.1
[Peter van der Does][petervanderdoes]
* Bugfix: The --showcommands was on by default. It should be off by default.

#### 1.2.0
Expand Down
1 change: 1 addition & 0 deletions Makefile
Expand Up @@ -40,6 +40,7 @@ SCRIPT_FILES+=git-flow-hotfix
SCRIPT_FILES+=git-flow-release
SCRIPT_FILES+=git-flow-support
SCRIPT_FILES+=git-flow-version
SCRIPT_FILES+=git-flow-config
SCRIPT_FILES+=gitflow-common
SCRIPT_FILES+=gitflow-shFlags

Expand Down
19 changes: 10 additions & 9 deletions README.mdown
@@ -1,4 +1,4 @@
# git-flow
# git-flow (AVH Edition)

A collection of Git extensions to provide high-level repository operations
for Vincent Driessen's [branching model](http://nvie.com/git-model "original
Expand Down Expand Up @@ -26,11 +26,12 @@ See the Wiki for up-to-date [Installation Instructions](https://github.com/peter

## Integration with your shell

For those who use the [Bash](http://www.gnu.org/software/bash/) or
[ZSH](http://www.zsh.org) shell, please check out the excellent work on the
[git-flow-completion](http://github.com/bobthecow/git-flow-completion) project
by [bobthecow](http://github.com/bobthecow). It offers tab-completion for all
git-flow subcommands and branch names.
For those who use the [Bash](http://www.gnu.org/software/bash/) or [ZSH](http://www.zsh.org)
shell, you can use my [fork of git-flow-completion](https://github.com/petervanderdoes/git-flow-completion)
of the excellent work on the[git-flow-completion](http://github.com/bobthecow/git-flow-completion)
project by [bobthecow](http://github.com/bobthecow). It offers tab-completion
for all git-flow subcommands and branch names. My fork includes tab-completion
for the commands not found in the original git-flow.


## FAQ
Expand All @@ -43,13 +44,13 @@ Starting with version 1.0, the project uses the following scheme:

## Please help out

This project is still under development. Feedback and suggestions are very
This project is under constant development. Feedback and suggestions are very
welcome and I encourage you to use the [Issues
list](http://github.com/petervanderdoes/gitflow/issues) on Github to provide that
feedback.

Feel free to fork this repo and to commit your additions. For a list of all
contributors, please see the [AUTHORS](AUTHORS) file.
Feel free to fork this repository and to commit your additions. For a list of
all contributors, please see the [AUTHORS](AUTHORS) file.

Any questions, tips, or general discussion can be posted to our Google group:
[http://groups.google.com/group/gitflow-users](http://groups.google.com/group/gitflow-users)
Expand Down
6 changes: 6 additions & 0 deletions git-flow
Expand Up @@ -49,6 +49,11 @@ fi
# This helps our Windows users, while not bothering our Unix users.
export GITFLOW_DIR=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")

# Extra environment settings
if [ -f ~/.gitflow_export ]; then
. ~/.gitflow_export
fi

usage() {
echo "usage: git flow <subcommand>"
echo
Expand All @@ -59,6 +64,7 @@ usage() {
echo " hotfix Manage your hotfix branches."
echo " support Manage your support branches."
echo " version Shows version information."
echo " config Manage your git-flow configuration."
echo
echo "Try 'git flow <subcommand> help' for details."
}
Expand Down
250 changes: 250 additions & 0 deletions git-flow-config
@@ -0,0 +1,250 @@
#
# git-flow -- A collection of Git extensions to provide high-level
# repository operations for Vincent Driessen's branching model.
#
# A blog post presenting this model is found at:
# http://blog.avirtualhome.com/development-workflow-using-git/
#
# Feel free to contribute to this project at:
# http://github.com/petervanderdoes/gitflow
#
# Authors:
# Copyright 2012 Peter van der Does. All rights reserved.
#
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#


initialize() {
require_git_repo
require_gitflow_initialized
gitflow_load_settings
}

usage() {
OPTIONS_SPEC="\
git flow config [list]
git flow config set

Manage the git-flow configuration.

For more specific help type the command followed by --help
--
"
flags_help
}

parse_args() {
# Parse options
FLAGS "$@" || exit $?
eval set -- "${FLAGS_ARGV}"

OPTION=$(echo $1|tr '[:upper:]' '[:lower:]')

if [ "$FLAGS_file" != "" ]; then
gitflow_config_option="--file '$FLAGS_file'"
elif flag local; then
gitflow_config_option="--local"
elif flag global; then
gitflow_config_option="--global"
elif flag system; then
gitflow_config_option="--system"
else
gitflow_config_option=""
fi

}

# Default entry when no SUBACTION is given
cmd_default() {
OPTIONS_SPEC="\
git flow config [list]

Show the git-flow configurations
--
h,help! Show this help

Use config file location
local! use repository config file
global! use global config file
system! use system config file
file= use given config file
"
local output

# Define flags
DEFINE_boolean local false 'use repository config file'
DEFINE_boolean global false 'use global config file'
DEFINE_boolean system false 'use system config file'
DEFINE_string file "" 'use given config file'

# Parse arguments
parse_args "$@"

output=$(git config $gitflow_config_option --get gitflow.branch.master)
echo "Branch name for production releases: $output "

output=$(git config $gitflow_config_option --get gitflow.branch.develop)
echo "Branch name for \"next release\" development: $output "

output=$(git config $gitflow_config_option --get gitflow.prefix.feature)
echo "Feature branch prefix: $output "

output=$(git config $gitflow_config_option --get gitflow.prefix.release)
echo "Release branch prefix: $output "

output=$(git config $gitflow_config_option --get gitflow.prefix.hotfix)
echo "Hotfix branch prefix: $output "

output=$(git config $gitflow_config_option --get gitflow.prefix.support)
echo "Support branch prefix: $output "

output=$(git config $gitflow_config_option --get gitflow.prefix.versiontag)
echo "Version tag prefix: $output "
}

cmd_set() {
OPTIONS_SPEC="\
git flow config set <option> <value>

Set the git-flow configuration option to the given value
--
h,help! Show this help

Use config file location
local! use repository config file
global! use global config file
system! use system config file
file= use given config file
"
local value cfg_option txt

# Define flags
DEFINE_boolean local false 'use repository config file'
DEFINE_boolean global false 'use global config file'
DEFINE_boolean system false 'use system config file'
DEFINE_string file "" 'use given config file'

# Parse arguments
parse_args "$@"
eval set -- "${FLAGS_ARGV}"
value=$2

case $OPTION in
master)
cfg_option="gitflow.branch.master"
txt="Branch name for production releases"
;;
develop)
cfg_option="gitflow.branch.develop"
txt="Branch name for \"next release\" development"
;;
feature)
cfg_option="gitflow.prefix.feature"
txt="Feature branch prefix"
;;
hotfix)
cfg_option="gitflow.prefix.hotfix"
txt="Hotfix branch prefix"
;;
release)
cfg_option="gitflow.prefix.release"
txt="Release branch prefix"
;;
support)
cfg_option="gitflow.prefix.support"
txt="Support branch prefix"
;;
versiontagprefix)
cfg_option="gitflow.prefix.versiontag"
txt="Version tag prefix"
;;
*)
die_help "Invalid option given."
;;
esac

[ -n "$value" ] || die_help "No value given"

if [ $OPTION = "master" ]; then
develop_branch=$(git config --get gitflow.branch.develop)
if [ "$value" = $develop_branch ]; then
die "Production and \"next release\" branch should differ."
fi

if ! git_local_branch_exists "$value" && git_remote_branch_exists "origin/$value"; then
git_do branch "$value" "origin/$value" >/dev/null 2>&1
elif ! git_local_branch_exists "$value"; then
die "Local branch '$value' does not exist."
fi
fi

if [ $OPTION = "develop" ]; then
master_branch=$(git config --get gitflow.branch.master)
if [ "$value" = $master_branch ]; then
die "Production and \"next release\" branch should differ."
fi

if ! git_local_branch_exists "$value" && git_remote_branch_exists "origin/$value"; then
git_do branch "$value" "origin/$value" >/dev/null 2>&1
elif ! git_local_branch_exists "$value"; then
die "Local branch '$value' does not exist."
fi
fi

git_do config $gitflow_config_option $cfg_option "$value"

case $? in
0)
;;
3)
die "The config file is invalid."
;;
4)
die "Can not write to the config file."
;;
*)
die "Unknown return code [$?]. Please file an issue about this error."
;;
esac

echo
echo "Summary of actions:"
if [ "$FLAGS_file" != "" ]; then
echo "- Using configuration file '$FLAGS_file'"
elif flag local; then
echo "- Using repository specific configuration file."
elif flag global; then
echo "- Using user-specific configuration file."
elif flag system; then
echo "- Using system-wide configuration file."
else
echo "- Using repository specific configuration file."
fi
echo "- $txt set to $value"
echo
}

cmd_help() {
usage
exit 0
}

0 comments on commit 43994f4

Please sign in to comment.