1[petervanderdoes]: https://github.com/petervanderdoes "Peter van der Does on github"
2[adamrodger]: https://github.com/adamrodger
3[adutra]: https://github.com/adutra
4[aleno]: https://github.com/aleno
5[algernon]: https://github.com/algernon
6[asheiduk]: https://github.com/asheiduk
7[baby-gnu]: https://github.com/baby-gnu
8[bloomonkey]: https://github.com/bloomonkey
9[bloveridge]:  https://github.com/bloveridge "Ben Loveridge on github"
10[craigfowler]: https://github.com/craigfowler
11[cyberbob]: https://github.com/cyberbob
12[floga]: https://github.com/FloGa
13[gene-pavlovsky]: https://github.com/gene-pavlovsky
14[gpongelli]: https://github.com/gpongelli
15[gvangool]: https://github.com/gvangool
16[havvg]: https://github.com/havvg
17[jebmeier]: https://github.com/jebmeier
18[jeromebaum]: https://github.com/jeromebaum
19[jpenney78]: https://github.com/jpenney78
20[jsivak]: https://github.com/jsivak
21[kperi]: https://github.com/kperi
22[lrkwz]: https://github.com/lrkwz
23[mallamanis]: https://github.com/mallamanis
24[mayerc-MSFT]: https://github.com/mayerc-MSFT
25[memleak]: https://github.com/memleak/
26[merelyapseudonym]: https://github.com/MerelyAPseudonym
27[mykehsd]: https://github.com/mykehsd
28[OpherV]: https://github.com/OpherV
29[Oppodelldog]: https://github.com/Oppodelldog
30[pokey]: https://github.com/pokey
31[pcragone]: https://github.com/pcragone
32[Shoozza]: https://github.com/Shoozza
33[shpoont]: https://github.com/shpoont
34[silasfn]: https://github.com/silasfn
35[sinbad]: https://github.com/sinbad
36[sirn]: https://github.com/sirn
37[stevemao]: https://github.com/stevemao
38[Tiscs]: https://github.com/Tiscs
39[zheeeng]: https://github.com/zheeeng
40
41# Changelog
42
43#### 1.12.3
44* Explicitly get the default values from the system and global config.
45
46#### 1.12.2
47* Missing parentheses (Thanks [Tiscs Sun][Tiscs] )
48
49#### 1.12.1
50[Peter van der Does][petervanderdoes]
51* When using the `-d` flag during `init` the defaults are empty. Identified by [Adam Rodger][adamrodger]
52
53#### 1.12.0
54[Peter van der Does][petervanderdoes]
55* Bugfix: Remove inconsistency when pre_hook fails (Thanks [Gabriele Pongelli][gpongelli])
56* Fix indentation in README.md (Thanks [Shoozza][Shoozza])
57
58
59[Andreas Heiduk][asheiduk]
60* Bugfix: Unexpected operator.
61
62[zheeeng][zheeeng]
63* Enhancement: Review your commits more easier on figuring out what this feature/bugfix added exactly.
64
65[Oppodelldog][Oppodelldog]
66* Enhancement: Allows to install a specific version of git-flow when using the `gitflow-installer.sh` script
67
68[mayerc][mayerc-MSFT]
69* Enhancement: Add option that will not allow the a merge back into the develop branch.
70
71[Steve Mao][stevemao]
72* Fix: Standarize the README markdown.
73
74[Gabriele Pongelli][gpongelli]
75* Enhancement: Also use core.hooksPath for suggestion for the hook path during initialization.
76
77[Gene Pavlovsky][gene-pavlovsky]
78* Enhancement: Add .gitattributes to enforce Unix line endings for certain files.
79
80[Luca Orlandi][lrkwz]
81* Reflect shared hotfix usage in readme.
82
83[Tiscs Sun][Tiscs]
84* Enhancement: Add parameters to set names for the branches during the init command.
85
86[Silas Palmer][silasfn]
87* Fix: Comparability change for git for windows
88
89[Pokey Rule][pokey]
90* Perform git push before deleting branch
91
92#### 1.11.0
93[Peter van der Does][petervanderdoes]
94* Bugfix: Problems when using fetch.prune
95* Bugfix: Errors when initializing git flow and useconfigonly is set but the name and/or email has not been set.
96* Bugfix: Report summary on finish is incorrect.
97* Missing push on bugfix finish
98* Allow a dirty tree when starting a hotfix/support/release branch if set to do so.
99If the config `gitflow.allowdirty` is set to `true`, allow starting from a dirty tree.
100* Bugfix: Error when trying to delete a non-existent remote branch
101* Feature: Add rename command to bugfix/hotfix/feature
102
103[Andreas Heiduk][asheiduk]
104* git flow * rebase now supports rebase.autoStash flag
105  git rebase can automatically cleanup the working tree. Therefore skip the test when and where appropriate.
106
107#### 1.10.2
108[Peter van der Does][petervanderdoes]
109* Bugfix: Error finishing a release.
110
111#### 1.10.1
112[Peter van der Does][petervanderdoes]
113* Bugfix: flag short name (p) already defined
114
115#### 1.10.0
116[Peter van der Does][petervanderdoes]
117* Update github links.
118* Add explanation of AVH.
119* Add ability when finishing a release to push or not push the branches and/or tag involved.
120* The finishing of a release branch based on a branch other than develop fails with errors.
121* Add --push flag for feature finish. This gives the ability to push the base branch after the finish.
122* When finishing a release have the ability to fast-forward the master branch, if possible.
123  This is controlled by the flag --ff-master.
124* Add new flag -T, --tagname to override the tag name when finishing a release or hotfix.
125* Allow multiple hotfix branches by setting the config allowmultihotfix to true.
126  The command to set it is
127
128[Kridsada Thanabulpong][sirn]
129* Fix infinite loop during Darwin link resolving.
130
131[Justin Penney][jpenney78]
132* Add detection for BusyBox getopt.
133
134#### 1.9.1
135[Peter van der Does][petervanderdoes]
136* Bugfix: git-flow directories are not set correctly
137
138#### 1.9.0
139[Peter van der Does][petervanderdoes]
140* Add bugfix command.
141* Repositories with spaces in path cause the pre * post hook to fail.
142* Error using git flow log.
143* Using defaults with init fails with existing repository.
144* Allow multiple hotfix branches.
145  By setting the config gitflow.multi-hotfix to true, you can have multiple
146  hotfix branches. Example: git config --set gitflow.multi-hotfix true
147 * Can't delete branch if the base branch is not the develop branch.
148 * Add squash and squash-info flag to hotfix finish.
149 * Problem when the repository directory has multiple spaces.
150
151[Gergely Nagy][algernon]
152* Remove bash code.
153
154[Joe Ebmeier][jebmeier]
155* Fix issue in case CDPATH is being used.
156  In the case of CDPATH being used, it is possible DOT_GIT_DIR variable
157  is incorrect.
158
159[Alexander Norström][aleno]
160* Fix issue when a prefix is chosen that doesn't end in a slash
161
162#### 1.8.0
163[Peter van der Does][petervanderdoes]
164* Add rebase action to release, hotfix and support.
165* Shortcut for rebase commands.
166  Introduce the following new command:
167  * git flow rebase
168
169  This command will perform the action on the branch that's currently active.
170* Use the base branch when doing a git flow feature diff.
171  When doing a diff on the feature branch use the base branch which this
172  feature originated from. It will show the committed changes.
173* Problem when certain variables are set before executing git-flow.
174  When certain variables are set in the shell environment it causes problems.
175* Warning for commands to be deprecated.
176  The command "feature checkout/co" will be deprecated per version 2.0.0
177  The command "feature pull" will be deprecated per version 2.0.0
178* Using fetch flag fails sometimes.
179* Hooks and filters are not executed when you are in a subdirectory of the
180  repository and the hooks directory is set to the suggested value during
181  initialization.
182
183[Craig Fowler][craigfowler]
184* 'export' fails in 'gitflow_load_settings()'
185
186[Toni Uebernickel][havvg]
187* Add log command
188
189#### 1.7.0
190[Peter van der Does][petervanderdoes]
191* Refactor the gitflow override flag functions.
192* Shortcut for finish, delete, and publish commands.
193  Introduce the following new commands:
194  * git flow finish
195  * git flow delete
196  * git flow publish
197
198  These commands will perform the action on the branch that's currently active.
199* No branch is needed for the following function:
200  * git flow feature publish/finish/delete
201  * git flow release publish/finish/delete
202  * git flow hotfix publish/finish/delete
203
204* Remove base configuration when deleting a feature/hotfix/release branch.
205* Help text for certain commands is wrong.
206* Bugfix: Invalid function call.
207* Bugfix: No make installer fails
208* Support branches are no longer marked as experimental.
209
210[John Sivak][jsivak]
211* Fix sanity check for release track command.
212
213[Opher Vishnia][OpherV]
214* Fix feature pull.
215  The pull request fails when there's no local branch with the same name as the
216  remote branch.
217
218[Leonid Komarovsky][shpoont]
219* Option for global hooks and filters directory.
220  This is only for hooks and filters related to git-flow, not the standard git
221  hooks.
222
223#### 1.6.1
224[Peter van der Does][petervanderdoes]
225* Migration of gitflow_config fails for posix sh.
226* Error messages when .gitflow_export doesn't exists.
227
228#### 1.6.0
229[Peter van der Does][petervanderdoes]
230* Add ability to short-circuit the version filters.
231  An exit of 127 will short-circuit the process.
232* Output when finishing a branch is wrong.
233
234[Mateusz Kaczmarek][cyberbob]
235* Fix sanity check for feature track command.
236
237[Leonid Komarovsky][shpoont]
238* Move configuration from ~/.gitflow_export to default git config.
239* Move base configuration from it's own configuration file to the default local git config file.
240* Improve formatting of the help.
241
242#### 1.5.3
243[Peter van der Does][petervanderdoes]
244* Bugfix: Error about deleting branch when using squash option.
245  When using the squash option for release/feature finish, the release/feature
246  branch is not deleted.
247
248#### 1.5.2
249[Peter van der Does][petervanderdoes]
250* Add filter for tag message  .
251  If a tag message is given, the message can be modified using the filters:
252  - filter-flow-hotfix-finish-tag-message
253  - filter-flow-release-finish-tag-message
254  - filter-flow-release-branch-tag-message
255* Bugfix: Typo in documentation.
256
257[Florian Gamböck][floga]
258* Bugfix: Fix variable name in hotfix
259
260[Leonid Komarovsky][shpoont]
261* git flow rebase will rebase against its base branch instead of develop.
262* Add flag --preserve-merges for feature rebase or feature finish.
263
264#### 1.5.1
265[Peter van der Does][petervanderdoes]
266* Fix some of the flag override environment variable names.
267
268[Joshua P. Tilles][merelyapseudonym]
269* Add default flag for flag showcommands.
270
271[Florian Gamböck][floga]
272* Bugfix: Fix variable non-zero test
273  Due to missing quotation marks, the -n test won't work properly, leading to
274  always returning true and overriding variables with nothing.
275
276
277#### 1.5.0
278[Peter van der Does][petervanderdoes]
279* Add the ability to set defaults for flag.
280  You can now set defaults for flags by setting environment variables.
281* Add flag no-ff to feature finish.
282  This gives the ability to never fast-forward a merge, even when it's only
283  one commit.
284* Bugfix: Error in a long flag name for release finish
285* Function in gitflow-shFlags refactored to make it faster.
286* Add flag --squash-info to release/feature finish.
287  When you use the flag --squash while finishing a release or feature branch,
288  the logs don't make it clear which branch you merged. The new flag will add
289  an extra comment to the commit message, stating which branch was used for the
290  merge.
291* Bugfix: The contrib gitflow-installer.sh shows wrong installation instructions.
292
293#### 1.4.2
294* Bugfix: Update from upstream for shFlags
295
296#### 1.4.1
297* Bugfix: Missed quotation mark
298
299#### 1.4.0
300[Peter van der Does][petervanderdoes]
301* Remember the base.
302  With the commands feature/hotfix/release start you can give a base from which
303  the new branch will be created. Upon finishing this branch it will
304  automatically merge the branch back into the base as given during the start.
305  If no base is given the normal functionality will be followed.
306  With the hotfix and release, if a base is given and it's not the
307  DEVELOP_BRANCH, the branch will *NOT* be merged back into the $DEVELOP_BRANCH
308  upon finishing this branch.
309* New config command.
310  git flow config base. This can be used to set and get the base for
311  feature/hotfix/release branches so it can be used when finishing these
312  branches.
313* Get the correct working directory when the git-flow file is a symbolic link.
314* Don't check/compare hotfix and base branch when branch is merged already.
315* Remove export POSIXLY_CORRECT.
316  Setting this environment variable can mess things up when git-flow is used in
317  combination with other shell scripts.
318* Update gitflow-shFlags from upstream.
319  Besides other improvements this update eliminates the use of external system
320  calls on a majority of systems which in theory leads to a speed increase of
321  about 20%.
322* Use GNU getopt on BSD systems.
323  BSD getopt doesn't support long options in commands but the GNU getopt does.
324
325[Alexandre Dutra][adutra]
326* Git refuses to delete local branch with "-d" if it is tracking a remote one.
327* Can't always delete current release/hotfix local branch on finish
328  Situation can occur you are on the local branch the script wants to delete, if
329  you are you can't delete that branch. We'll switch to the base branch when
330  you are deleting the branch you currently are on.
331
332#### 1.3.1
333* Bugix: git flow config list results in error.
334
335#### 1.3.0
336[Peter van der Does][petervanderdoes]
337* Make name in feature publish optional.
338  Instead of always having to add the branch when doing a git flow feature
339  publish, the name should be optional.
340  When a name isn't given, the current branch, if it's a feature branch,
341  will be published.
342* Add option to select configuration file usage
343  As with the regular git config, git flow init now has the
344  option --file, --global, --system and --local. --local is default.
345* Add a new command.
346  New command git flow config is added.
347  With this command you can see your current git flow configuration and you
348  can also set the options.
349* Environment settings for git-flow only.
350  With git you can set environment variables to change behavior, like
351  GIT_MERGE_AUTOEDIT for example.
352  You can add these exports to the file ~/.gitflow_export if you only want
353  to set the environment variable for git-flow.
354* Bugfix: Missing command hotfix track.
355  The command git flow hotfix track is not implemented.
356
357#### 1.2.1
358[Peter van der Does][petervanderdoes]
359* Bugfix: The --showcommands was on by default. It should be off by default.
360
361#### 1.2.0
362[Peter van der Does][petervanderdoes]
363* Improve the help output of the commands.
364* Fix problem with init function on BSD systems.
365* Add initialize function to git flow version.
366* Add parameter --showcommands to all commands.
367  This will show the git commands performed while executing the command. Thanks
368  to [Jerome Baum][jeromebaum] for the original implementation.
369
370[Daniel Dehennin][baby-gnu]
371* Display where user is on finish.
372  Some commands did not display the branch you are on after the command
373  finished.
374* When finishing a hotfix/release and it's to be tagged, the tag must not exist.
375
376#### 1.1.0
377[Peter van der Does][petervanderdoes]
378* Bugfix: feature finish does double merge when using squash option.
379
380* Add the ability to keep/delete local/remote branches on finish.
381  When finishing a release/hotfix/feature you now can keep/delete the
382  local/remote release/hotfix/feature branch.
383
384* New command: git flow release branch
385  With this command you can directly release a given branch. There is no need
386  to start a new release and finish it. You can not use this command on the
387  git-flow branches feature/hotfix/release/support.
388
389* Do not display object fetch summary if flag was not set.
390  Thanks to [Daniel Dehennin][baby-gnu].
391
392* Bugfix: Checking if branch exists will fail for remote branches.
393
394* Make die output consistent for each die case.
395
396* Bugfix: When running git flow init an error message pops up.
397
398* Show correct help for subactions.
399  When requesting help with -h for the subactions, the help would show the
400  incorrect command line.
401
402* Support reading the tag message from a file in release/hotfix finish.
403  Add the option -f,--messagefile to release and hotfix finish. Thanks to
404  [Steve Streeting][sinbad] for the original coding.
405
406* Bugfix: git_current_branch fails for git prior 1.7.10.
407  git symbolic-ref does not have the --short option prior to version 1.7.10.
408  Bug found by [Daniel Dehennin][baby-gnu].
409
410* Clean up code.
411  Remove all porcelain commands.
412  Refactor code.
413
414* Improve the back-merge functionality.
415  Adds an command line option (-b), which the user can utilize if the user
416  doesn't want to back-merge but rather merge the release branch into
417  develop.
418
419* Add the sub-action delete to sub-commands feature, release and hotfix.
420  The sub-commands feature, release and hotfix now have a new sub-action,
421  delete. With that action you can delete the branches, locally and remote.
422  The action has two options, -f and -r. With -f you can force the deletion,
423  even when the to be deleted branch was not merged yet. With -r the remote
424  branch will also be deleted.
425
426[Daniel Dehennin][baby-gnu]
427* Bugfix: release/feature/hotfix start -F fails.
428  Usage of positional parameters requires to eval ${FLAGS_ARGV}. The "eval set"
429  in function call does not propagate to the caller.
430
431* Accept tags as base for hotfix/release/support start.
432  Commit pointed by tags are reachable with ^0\[1\].
433
434* Check for parameter existence for branch and tag existence helpers.
435
436* Do not finish hotfixes if they have no commits.
437  A hotfix branch must have some commits and be ahead of master.
438
439* Bugfix: When running git flow version an error message pops up.
440
441* Reorder fetch and sanity checks.
442  When a user requests a fetch for git flow {feature|hotfix|support} start, do
443  this before some sanity checks to avoid any conflict in branch names
444  and/or version.
445
446* Fix flag test in cmd_delete().
447
448[Myke Hines][mykehsd]
449* Feature and Release squashing options.
450  This allows a -S option to both feature and releasing finishing actions so
451  that developers can squash commits into one large one.
452
453[Peter Ragone][pcragone]
454* Add init to git-flow-{feature,release,hotfix,support}.
455  Fixes the relatively minor issue where 'git flow subcommand help'
456  gives "Not a gitflow-enabled repo yet".
457
458* Special thanks to the following individual:
459  [Gert Van Gool][gvangool]
460
461#### 1.0-avh
462[Peter van der Does][petervanderdoes]
463
464* Remove trailing whitespace.
465
466* Updated from latest develop branch from nvie.
467  Some features were still missing.
468
469* Remove the submodule shFlags.
470  Instead of the submodule we'll just use the file.
471
472* When finishing a release or hotfix, use tag for back-merging if available.
473  When a release or hotfix branch is tagged, the tag is never merged into the
474  develop branch, it is preferable to have the tag in the develop branch as
475  well, for use with git describe for example.
476
477* Update license info.
478
479* Bugfix: Typo when pulling existing feature from remote.Thanks to [John Harrison][bloomonkey],  [Miltos][mallamanis], [Kostas][kperi] and [memleak][memleak].
480
481* Wrong variable names in the bare-bones.
482  The wrong variable name is set, this can lead to confusing on what's
483  passed to the script,
484
485[Steve Streeting][sinbad]
486* Fixes the suggested name for the integration branch.
487  When git init -d is executed on a repo with multiple branches, the
488  suggested name for the integration branch could possibly be the same name
489  that was already selected for the production release branch.
490  If no suggested name is determined the suggested name remains empty which
491  leads to all sorts of other problems.
492
493#### 0.4.2-avh1
494[Peter van der Does][petervanderdoes]
495
496* Start of the git flow AVH release.
497
498* Adds support for the version filter in the commands `git flow release start`
499and `git flow hotfix start`
500
501* Adds support for hooks in various commands.
502
503[Ben Loveridge][bloveridge]
504
505* Fix usage of shFlags on FreeBSD
506
507#### 0.4.2
508Release date: not yet
509
510* `git flow init` now detects situations where origin already has gitflow
511  branches set up, and behaves accordingly (thanks Emre Berge Ergenekon).
512
513* `git flow feature finish` can now be called without a feature branch
514  name(prefix) argument and will finish the current branch, if on any.
515
516* `git flow feature pull` now has a `-r` flag, to support `pull --rebase`
517  semantics (thanks Vedang Manerikar).
518
519* Various minor bug fixes related to internal argument passing.
520
521* Improved some documentation.
522
523* Better support for Windows and BSD users.
524
525* Add package installer for the Windows platform.
526
527#### 0.4.1
528Release date: **2011/02/04**
529
530* New option `-d` added to `git flow init`, to initialize with defaults without
531  asking for input interactively.  Ideal for creating git-flow enabled repos in
532  custom scripts.
533
534* The parsing issues related to git-flow feature's flags are now dealt with on
535  all known platforms.  (Fixed #54, #62, #86, #97)
536
537* Escape queries for detecting branch/tag names.  (Fixed #91)
538
539
540#### 0.4
541Release date: **2010/10/18**
542
543* The flag parsing issues of git-flow subcommands are solved for most
544  platforms.
545
546* `git flow {feature,hotfix,release} finish` now takes a `-k` flag, to keep the
547  branch around after finishing.
548
549* `git flow release finish` takes a `-n` flag, to skip tagging.
550
551* For consistency, `git flow {release,hotfix}` now, too, have a `publish` and
552  `track` subcommand, just like `feature`.
553
554* Various minor fixes.
555
556
557#### 0.3
558Release date: **2010/07/22**
559
560* New subcommands for `git flow feature`:
561  - **checkout**:
562    For easily checking out features by their short name.  Even allows
563    unique prefixes as arguments (see below).
564
565  - **pull**:
566    This subcommand allows you to painlessly work on a feature branch
567    together with another peer.  This is especially valuable for doing
568    peer reviews of other people's code.  For more detailed info, see the
569    [commit log][1].
570
571* Easier addressing of branch names by using name prefixes.
572  For example, when using:
573
574    git flow feature finish fo
575
576  this automatically finishes the feature branch `foobar` if that's the only
577  feature branch name starting with `fo`.
578
579* No force flag anymore for new feature branches
580  `git flow feature start` lost its `-f` (force) flag.  You now don't
581  have to be in a clean repo anymore to start a new feature branch. This
582  avoids the manual `git stash`, `git flow feature start`, `git stash
583  pop` cycle.
584
585* You can use `git-flow` in stand-alone repo's now.
586  This means it does not assume you have an `origin` repository.
587  (Thanks [Mark][2].)
588
589* No commands fetch from `origin` by default anymore.
590  There were some issues related to disabling this flag on some platforms.
591
592* Init guesses branch names you may want to use for `develop` and `master`.
593
594* Added super-easy installation script. (Thanks [Rick][3].)
595
596* Added BSD license.
597
598[1]: http://github.com/nvie/gitflow/commit/f68d405cc3a11e9df3671f567658a6ab6ed8e0a1
599[2]: http://github.com/talios
600[3]: http://github.com/rickosborne
601
602#####Older versions
603No change history is recorded for pre-0.3 releases.
604
605#### Glossary
606* RFC: Request For Change. This indicates a new or improved function requested
607by one or more users.
608