Merge branch 'develop' into squash-option
diff --git a/README.mdown b/README.mdown
index c7238e6..a01079b 100644
--- a/README.mdown
+++ b/README.mdown
@@ -138,7 +138,7 @@
 A few people already requested it, so now it's here: a Flattr button.
 
 Of course, the best way to show your appreciation for the original
-[blog post](http://nvie.com/git-model) or the git-flow tool itself remains
+[blog post](http://nvie.com/posts/a-successful-git-branching-model/) or the git-flow tool itself remains
 contributing to the community.  If you'd like to show your appreciation in
 another way, however, consider Flattr'ing me:
 
diff --git a/git-flow b/git-flow
index 93e9f0f..19c337e 100755
--- a/git-flow
+++ b/git-flow
@@ -109,7 +109,10 @@
 	fi
 
 	# run the specified action
-	cmd_$SUBACTION "$@"
+  if [ $SUBACTION != "help" ]; then
+    init
+  fi
+  cmd_$SUBACTION "$@"
 }
 
 main "$@"
diff --git a/git-flow-feature b/git-flow-feature
index 8014fcc..3ee35ef 100644
--- a/git-flow-feature
+++ b/git-flow-feature
@@ -36,10 +36,12 @@
 # policies, either expressed or implied, of Vincent Driessen.
 #
 
-require_git_repo
-require_gitflow_initialized
-gitflow_load_settings
-PREFIX=$(git config --get gitflow.prefix.feature)
+init() {
+  require_git_repo
+  require_gitflow_initialized
+  gitflow_load_settings
+  PREFIX=$(git config --get gitflow.prefix.feature)
+}
 
 usage() {
 	echo "usage: git flow feature [list] [-v]"
@@ -514,7 +516,7 @@
 				exit 1
 			fi
 		else
-			it pull -q "$REMOTE" "$BRANCH" || die "Failed to pull from remote '$REMOTE'."
+			git pull -q "$REMOTE" "$BRANCH" || die "Failed to pull from remote '$REMOTE'."
 		fi
 
 		echo "Pulled $REMOTE's changes into $BRANCH."
diff --git a/git-flow-hotfix b/git-flow-hotfix
index b355f30..8c4ca10 100644
--- a/git-flow-hotfix
+++ b/git-flow-hotfix
@@ -36,11 +36,13 @@
 # policies, either expressed or implied, of Vincent Driessen.
 #
 
-require_git_repo
-require_gitflow_initialized
-gitflow_load_settings
-VERSION_PREFIX=$(eval "echo `git config --get gitflow.prefix.versiontag`")
-PREFIX=$(git config --get gitflow.prefix.hotfix)
+init() {
+  require_git_repo
+  require_gitflow_initialized
+  gitflow_load_settings
+  VERSION_PREFIX=$(eval "echo `git config --get gitflow.prefix.versiontag`")
+  PREFIX=$(git config --get gitflow.prefix.hotfix)
+}
 
 usage() {
 	echo "usage: git flow hotfix [list] [-v]"
@@ -221,6 +223,7 @@
 	DEFINE_boolean sign false "sign the release tag cryptographically" s
 	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_string messagefile "" "use the contents of the given file as tag message" f
 	DEFINE_boolean push false "push to $ORIGIN after performing finish" p
 	DEFINE_boolean keep false "keep branch after performing finish" k
 	DEFINE_boolean notag false "don't tag this release" n
@@ -269,6 +272,7 @@
 			flag sign && opts="$opts -s"
 			[ "$FLAGS_signingkey" != "" ] && opts="$opts -u '$FLAGS_signingkey'"
 			[ "$FLAGS_message" != "" ] && opts="$opts -m '$FLAGS_message'"
+			[ "$FLAGS_messagefile" != "" ] && opts="$opts -F '$FLAGS_messagefile'"
 			eval git tag $opts "$VERSION_PREFIX$VERSION" || \
 			die "Tagging failed. Please run finish again to retry."
 		fi
diff --git a/git-flow-init b/git-flow-init
index 4afa1c2..00646fe 100644
--- a/git-flow-init
+++ b/git-flow-init
@@ -153,11 +153,17 @@
 			default_suggestion=
 			for guess in $(git config --get gitflow.branch.develop) \
 			             'develop' 'int' 'integration' 'master'; do
-				if git_local_branch_exists "$guess"; then
+				if git_local_branch_exists "$guess" && [ "$guess" != "$master_branch" ]; then
 					default_suggestion="$guess"
 					break
 				fi
 			done
+			
+			if [ -z $default_suggestion ]; then
+				should_check_existence=NO
+				default_suggestion=$(git config --get gitflow.branch.develop || echo develop)
+			fi
+			
 		fi
 
 		printf "Branch name for \"next release\" development: [$default_suggestion] "
diff --git a/git-flow-release b/git-flow-release
index e246b37..62fb8b7 100644
--- a/git-flow-release
+++ b/git-flow-release
@@ -36,11 +36,13 @@
 # policies, either expressed or implied, of Vincent Driessen.
 #
 
-require_git_repo
-require_gitflow_initialized
-gitflow_load_settings
-VERSION_PREFIX=$(eval "echo `git config --get gitflow.prefix.versiontag`")
-PREFIX=$(git config --get gitflow.prefix.release)
+init() {
+  require_git_repo
+  require_gitflow_initialized
+  gitflow_load_settings
+  VERSION_PREFIX=$(eval "echo `git config --get gitflow.prefix.versiontag`")
+  PREFIX=$(git config --get gitflow.prefix.release)
+}
 
 usage() {
 	echo "usage: git flow release [list] [-v]"
@@ -190,6 +192,7 @@
 	DEFINE_boolean sign false "sign the release tag cryptographically" s
 	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_string messagefile "" "use the contents of the given file as a tag message" f
 	DEFINE_boolean push false "push to $ORIGIN after performing finish" p
 	DEFINE_boolean keep false "keep branch after performing finish" k
 	DEFINE_boolean notag false "don't tag this release" n
@@ -246,6 +249,7 @@
 			flag sign && opts="$opts -s"
 			[ "$FLAGS_signingkey" != "" ] && opts="$opts -u '$FLAGS_signingkey'"
 			[ "$FLAGS_message" != "" ] && opts="$opts -m '$FLAGS_message'"
+			[ "$FLAGS_messagefile" != "" ] && opts="$opts -F '$FLAGS_messagefile'"
 			eval git tag $opts "$tagname" || \
 			die "Tagging failed. Please run finish again to retry."
 		fi
diff --git a/git-flow-support b/git-flow-support
index 605694d..ba4d92f 100644
--- a/git-flow-support
+++ b/git-flow-support
@@ -36,11 +36,13 @@
 # policies, either expressed or implied, of Vincent Driessen.
 #
 
-require_git_repo
-require_gitflow_initialized
-gitflow_load_settings
-VERSION_PREFIX=$(eval "echo `git config --get gitflow.prefix.versiontag`")
-PREFIX=$(git config --get gitflow.prefix.support)
+init() {
+  require_git_repo
+  require_gitflow_initialized
+  gitflow_load_settings
+  VERSION_PREFIX=$(eval "echo `git config --get gitflow.prefix.versiontag`")
+  PREFIX=$(git config --get gitflow.prefix.support)
+}
 
 warn "note: The support subcommand is still very EXPERIMENTAL!"
 warn "note: DO NOT use it in a production situation."