0.4.2:
-----
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)

* `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

* Add package installers for the Debian and Windows platforms.

0.4.1:
-----
Release date: **2011/02/04**

* New option `-d` added to `git flow init`, to initialize with defaults without
  asking for input interactively.  Ideal for creating git-flow enabled repos in
  custom scripts.

* The parsing issues related to git-flow feature's flags are now dealt with on
  all known platforms.  (Fixed #54, #62, #86, #97)

* Escape queries for detecting branch/tag names.  (Fixed #91) 


0.4:
---
Release date: **2010/10/18**

* The flag parsing issues of git-flow subcommands are solved for most
  platforms.

* `git flow {feature,hotfix,release} finish` now takes a `-k` flag, to keep the
  branch around after finishing.

* `git flow release finish` takes a `-n` flag, to skip tagging.

* For consistency, `git flow {release,hotfix}` now, too, have a `publish` and
  `track` subcommand, just like `feature`.

* Various minor fixes.


0.3:
----
Release date: **2010/07/22**

* New subcommands for `git flow feature`:  
  - **checkout**:  
    For easily checking out features by their short name.  Even allows
    unique prefixes as arguments (see below).

  - **pull**:  
    This subcommand allows you to painlessly work on a feature branch
    together with another peer.  This is especially valuable for doing
    peer reviews of other people's code.  For more detailed info, see the
    [commit log][1].

* Easier addressing of branch names by using name prefixes.  
  For example, when using:  
  
  	git flow feature finish fo
  
  this automatically finishes the feature branch `foobar` if that's the only
  feature branch name starting with `fo`.

* No force flag anymore for new feature branches  
  `git flow feature start` lost its `-f` (force) flag.  You now don't
  have to be in a clean repo anymore to start a new feature branch. This
  avoids the manual `git stash`, `git flow feature start`, `git stash
  pop` cycle.

* You can use `git-flow` in stand-alone repo's now.  
  This means it does not assume you have an `origin` repository.
  (Thanks [Mark][2].)

* No commands fetch from `origin` by default anymore.  
  There were some issues related to disabling this flag on some platforms.

* Init guesses branch names you may want to use for `develop` and `master`.

* Added super-easy installation script. (Thanks [Rick][3].)

* Added BSD license.

[1]: http://github.com/nvie/gitflow/commit/f68d405cc3a11e9df3671f567658a6ab6ed8e0a1
[2]: http://github.com/talios
[3]: http://github.com/rickosborne


Older versions
--------------
No change history is recorded for pre-0.3 releases.
