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