Yesterday I went to see an former colleague, Kristoffer Ahl, holding a talk about git flow. The talk was very interesting since I have been using the git flow structure with mercurial for about a year. One thing that was really neat was the gitflow tooling. I had no idea that there was a nice toolkit for helping maintain the gitflow structure. Of course i had to see if there was something similar for mercurial, and of course there is.
It’s called hgflow. I just tired it out quickly and decided to do a quick writeup of it. The gist of it is the following:
Setup
> hg clone https://bitbucket.org/yujiewu/hgflow hgflow //clones the code for hgflow
//Edit your mercurial.ini, ususally found at %UserProfile%\mercurial.ini
[extensions]
hgflow = C:\{Path to where you cloned hgflow}\hgflow.py
> hg flow init //initialize hg flow for your repository
Getting started
> hg flow feature start feature-a //creates a new feature branch
Go about coding and commit as you go…
> hg flow feature finish feature-a //closes a feature branch and merges it into develop
Go about coding and commit as you go…
> hg flow release start 0.1 //creates a release branch
Stabilize your realease…
> hg flow release finish 0.1 //tags release branch, closes it and merges it into develop and default
…and a release has been made! And if you have a look at your source tree, it would look somthing like this:
I will go about testing this out from now on and will post any gotchas along the way!
Update 2013-11-22
Added setup instructions.
Update 2014-05-19
The repository has moved. Urls in the post have been updated to the new repository. The structure of the new repository is slightly different, so make sure the path to the hgflow.py file is right in your mercurial extension.