Updated from upstream
diff --git a/AUTHORS b/AUTHORS
index 1c29754..f7d1e66 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -18,5 +18,6 @@
 - Olivier Mengué
 - Emre Berge Ergenekon
 - Eric Holmes
+- Vedang Manerikar
 
 Portions derived from other open source works are clearly marked.
diff --git a/Changes.mdown b/Changes.mdown
index 4e39369..2281f23 100644
--- a/Changes.mdown
+++ b/Changes.mdown
@@ -3,16 +3,21 @@
 Release date: **not yet**
 
 * `git flow init` now detects situations where origin already has gitflow
-  branches set up, and behaves accordingly (thanks Emre Berge Ergenekon)
+  branches set up, and behaves accordingly (thanks Emre Berge Ergenekon).
 
 * `git flow feature finish` can now be called without a feature branch
   name(prefix) argument and will finish the current branch, if on any.
 
-* Various minor bug fixes related to internal argument passing
+* `git flow feature pull` now has a `-r` flag, to support `pull --rebase`
+  semantics (thanks Vedang Manerikar).
 
-* Better support for Windows users.
+* Various minor bug fixes related to internal argument passing.
 
-* Add package installers for the Debian and Windows platforms.
+* Improved some documentation.
+
+* Better support for Windows and BSD users.
+
+* Add package installer for the Windows platform.
 
 0.4.1:
 -----
diff --git a/Makefile b/Makefile
index 764bd23..fbbfd2c 100644
--- a/Makefile
+++ b/Makefile
@@ -27,12 +27,7 @@
 # policies, either expressed or implied, of Vincent Driessen.
 #
 
-# Determine if we're inside a debian build .. 
-ifdef DEB_BUILD_ARCH
-   prefix=$(DESTDIR)/usr/
-else
-   prefix=/usr/local
-endif
+prefix=/usr/local
 
 # files that need mode 755
 EXEC_FILES=git-flow
diff --git a/README.mdown b/README.mdown
index 70d944d..c7238e6 100644
--- a/README.mdown
+++ b/README.mdown
@@ -1,5 +1,6 @@
-git-flow ![Project status](http://stillmaintained.com/nvie/gitflow.png)
+git-flow
 ========
+
 A collection of Git extensions to provide high-level repository operations
 for Vincent Driessen's [branching model](http://nvie.com/git-model "original
 blog post").
@@ -83,13 +84,15 @@
 
 To initialize a new repo with the basic branch structure, use:
   
-		git flow init
+		git flow init [-d]
   
 This will then interactively prompt you with some questions on which branches
 you would like to use as development and production branches, and how you
 would like your prefixes be named. You may simply press Return on any of
 those questions to accept the (sane) default suggestions.
 
+The ``-d`` flag will accept all defaults.
+
 
 ### Creating feature/release/hotfix/support branches
 
@@ -101,6 +104,11 @@
   
   For feature branches, the `<base>` arg must be a commit on `develop`.
 
+* To push/pull a feature branch to the remote repository, use:
+
+  		git flow feature publish <name>
+		  git flow feature pull <remote> <name>
+
 * To list/start/finish release branches, use:
   
   		git flow release
diff --git a/contrib/debian/changelog b/contrib/debian/changelog
deleted file mode 100644
index f889596..0000000
--- a/contrib/debian/changelog
+++ /dev/null
@@ -1,5 +0,0 @@
-gitflow (0.4.1) unstable; urgency=low
-
-  * Initial Debian Packaging
-
- -- Kiall Mac Innes <kiall@managedit.ie>  Mon, 25 Apr 2011 23:51:42 +0100
diff --git a/contrib/debian/compat b/contrib/debian/compat
deleted file mode 100644
index 7f8f011..0000000
--- a/contrib/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-7
diff --git a/contrib/debian/control b/contrib/debian/control
deleted file mode 100644
index d47b2b0..0000000
--- a/contrib/debian/control
+++ /dev/null
@@ -1,14 +0,0 @@
-Source: gitflow
-Section: vcs
-Priority: optional
-Maintainer: Kiall Mac Innes <kiall@managedit.ie>
-Build-Depends: debhelper (>= 7.0.50~), git
-Standards-Version: 3.9.1
-Homepage: http://nvie.com/posts/a-successful-git-branching-model/
-Vcs-Git: https://github.com/nvie/gitflow.git
-Vcs-Browser: https://github.com/nvie/gitflow
-
-Package: gitflow
-Architecture: all
-Depends: ${shlibs:Depends}, ${misc:Depends}, git
-Description: Git extensions to provide high-level repository operations for Vincent Driessen's branching model
diff --git a/contrib/debian/copyright b/contrib/debian/copyright
deleted file mode 100644
index a08359a..0000000
--- a/contrib/debian/copyright
+++ /dev/null
@@ -1,40 +0,0 @@
-Format: http://dep.debian.net/deps/dep5
-Upstream-Name: gitflow
-Source: <url://example.com>
-
-Files: *
-Copyright: <years> <put author's name and email here>
-           <years> <likewise for another author>
-License: BSD-3-Clause
-
-Files: debian/*
-Copyright: 2011 Kiall <kiall@managedit.ie>
-License: BSD-3-Clause
-
-License: BSD-3-Clause
- 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.
- 3. Neither the name of the University nor the names of its contributors
-    may be used to endorse or promote products derived from this software
-    without specific prior written permission.
- .
- THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
-
-# Please also look if there are files or directories which have a
-# different copyright/license attached and list them here.
diff --git a/contrib/debian/docs b/contrib/debian/docs
deleted file mode 100644
index ceda507..0000000
--- a/contrib/debian/docs
+++ /dev/null
@@ -1 +0,0 @@
-README.mdown
diff --git a/contrib/debian/rules b/contrib/debian/rules
deleted file mode 100755
index 79092d6..0000000
--- a/contrib/debian/rules
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-override_dh_testdir:
-	dh_testdir
-	git submodule init && git submodule update
-%:
-	dh $@ 
diff --git a/git-flow b/git-flow
index a03ba1f..93e9f0f 100755
--- a/git-flow
+++ b/git-flow
@@ -37,6 +37,9 @@
 # policies, either expressed or implied, of Vincent Driessen.
 #
 
+# set this to workaround expr problems in shFlags on freebsd
+if uname -s | egrep -iq 'bsd'; then export EXPR_COMPAT=1; fi
+
 # enable debug mode
 if [ "$DEBUG" = "yes" ]; then
 	set -x
diff --git a/git-flow-feature b/git-flow-feature
index d653ec1..39c1d19 100644
--- a/git-flow-feature
+++ b/git-flow-feature
@@ -9,17 +9,17 @@
 #    http://github.com/nvie/gitflow
 #
 # Copyright 2010 Vincent Driessen. 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 VINCENT DRIESSEN ``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
@@ -30,7 +30,7 @@
 # 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.
-# 
+#
 # The views and conclusions contained in the software and documentation are
 # those of the authors and should not be interpreted as representing official
 # policies, either expressed or implied, of Vincent Driessen.
@@ -244,7 +244,7 @@
 		# TODO: detect that we're working on the correct branch here!
 		# The user need not necessarily have given the same $NAME twice here
 		# (although he/she should).
-		# 
+		#
 
 		# TODO: git_is_clean_working_tree() should provide an alternative
 		# exit code for "unmerged changes in working tree", which we should
@@ -270,7 +270,7 @@
 			echo "Merge conflicts not resolved yet, use:"
 			echo "    git mergetool"
 			echo "    git commit"
-			echo 
+			echo
 			echo "You can then complete the finish by running it again:"
 			echo "    git flow feature finish $NAME"
 			echo
@@ -324,7 +324,7 @@
 		echo "There were merge conflicts. To resolve the merge conflict manually, use:"
 		echo "    git mergetool"
 		echo "    git commit"
-		echo 
+		echo
 		echo "You can then complete the finish by running it again:"
 		echo "    git flow feature finish $NAME"
 		echo
@@ -344,8 +344,8 @@
 	if flag fetch; then
 		git push "$ORIGIN" ":refs/heads/$BRANCH"
 	fi
-	
-	
+
+
 	if noflag keep; then
 		if flag force_delete; then
 			git branch -D "$BRANCH"
@@ -475,7 +475,7 @@
 
 cmd_pull() {
 	#DEFINE_string prefix false 'alternative remote feature branch name prefix' p
-    DEFINE_boolean rebase false "pull with rebase" r
+	DEFINE_boolean rebase false "pull with rebase" r
 	parse_remote_name "$@"
 
 	if [ -z "$REMOTE" ]; then
@@ -501,14 +501,14 @@
 
 		# we already have a local branch called like this, so simply pull the
 		# remote changes in
-        if flag rebase; then
-		    if ! git pull --rebase -q "$REMOTE" "$BRANCH"; then
-			    warn "Pull was aborted. There might be conflicts during rebase or '$REMOTE' might be inaccessible."
-			    exit 1
-		    fi
-        else
-           git pull -q "$REMOTE" "$BRANCH" || die "Failed to pull from remote '$REMOTE'."
-	    fi
+		if flag rebase; then
+			if ! git pull --rebase -q "$REMOTE" "$BRANCH"; then
+				warn "Pull was aborted. There might be conflicts during rebase or '$REMOTE' might be inaccessible."
+				exit 1
+			fi
+		else
+			it pull -q "$REMOTE" "$BRANCH" || die "Failed to pull from remote '$REMOTE'."
+		fi
 
 		echo "Pulled $REMOTE's changes into $BRANCH."
 	else
diff --git a/git-flow-hotfix b/git-flow-hotfix
index 0a77272..b355f30 100644
--- a/git-flow-hotfix
+++ b/git-flow-hotfix
@@ -269,7 +269,7 @@
 			flag sign && opts="$opts -s"
 			[ "$FLAGS_signingkey" != "" ] && opts="$opts -u '$FLAGS_signingkey'"
 			[ "$FLAGS_message" != "" ] && opts="$opts -m '$FLAGS_message'"
-			git tag $opts "$VERSION_PREFIX$VERSION" || \
+			eval git tag $opts "$VERSION_PREFIX$VERSION" || \
 			die "Tagging failed. Please run finish again to retry."
 		fi
 	fi
diff --git a/git-flow-release b/git-flow-release
index 08f595b..bb39d52 100644
--- a/git-flow-release
+++ b/git-flow-release
@@ -239,7 +239,7 @@
 			flag sign && opts="$opts -s"
 			[ "$FLAGS_signingkey" != "" ] && opts="$opts -u '$FLAGS_signingkey'"
 			[ "$FLAGS_message" != "" ] && opts="$opts -m '$FLAGS_message'"
-			git tag $opts "$tagname" || \
+			eval git tag $opts "$tagname" || \
 			die "Tagging failed. Please run finish again to retry."
 		fi
 	fi
diff --git a/gitflow-common b/gitflow-common
index fb515de..4834cf1 100644
--- a/gitflow-common
+++ b/gitflow-common
@@ -45,7 +45,7 @@
 die() { warn "$@"; exit 1; }
 
 escape() {
-	echo "$1" | sed 's/\([\.\+\$\*]\)/\\\1/g'
+	echo "$1" | sed 's/\([\.\$\*]\)/\\\1/g'
 }
 
 # set logic