Last active
August 29, 2015 13:56
-
-
Save cuberri/9335863 to your computer and use it in GitHub Desktop.
Sample mercurial workflow : changelog generation strategy in feature branching
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # | |
| # repository initialization | |
| # | |
| hg init helloworld && cd helloworld | |
| echo 'hello!' > helloworld.txt | |
| hg add | |
| hg ci -m 'added a dumb file to init the repo of this example' | |
| # necessary tricky tag for the first changelog generation :( | |
| hg tag 0.0.0 | |
| # | |
| # feature 1 | |
| # | |
| hg branch feature1 | |
| echo 'feature1' >> helloworld.txt | |
| hg ci -m 'added feature1 just for the example' | |
| # | |
| # embed feature 1 for release | |
| # | |
| hg up default | |
| hg branch develop | |
| hg merge feature1 | |
| hg ci -m '[changelog] Feature 1 on board!' | |
| # | |
| # release 1.0.0 - VERSION and CHANGELOG initialization | |
| # | |
| hg up default | |
| hg branch release | |
| hg merge develop | |
| hg ci -m 'merged develop, preparing version 1.0.0' | |
| echo '1.0.0' > VERSION | |
| (echo 'v1.0.0' ; hg changelog) > CHANGELOG | |
| hg add | |
| hg ci -m 'finished preparing version 1.0.0' | |
| hg up default | |
| hg merge release | |
| hg ci -m 'merged release, ready for tag 1.0.0' | |
| hg tag 1.0.0 | |
| hg up develop | |
| hg merge release | |
| hg ci -m "merged release, ready for other features" | |
| # | |
| # feature 2 | |
| # | |
| hg branch feature2 | |
| echo 'feature2' >> helloworld.txt | |
| hg ci -m 'added awesome feature2' | |
| hg up develop | |
| hg merge feature2 | |
| hg ci -m "[changelog] embedding feature2 for the next release" | |
| # | |
| # feature 3 | |
| # | |
| hg branch feature3 | |
| echo 'feature3' >> helloworld.txt | |
| hg ci -m '[changelog] a great commit, worth mentioning it in the CHANGELOG file' | |
| hg up develop | |
| hg merge feature3 | |
| hg ci -m "[changelog] embedding feature3 for the next release too" | |
| # | |
| # feature 4 | |
| # | |
| hg up develop | |
| hg branch feature4 | |
| echo 'feature4' >> helloworld.txt | |
| hg ci -m '[changelog] commit for feature4. Should not appear in the 2.0.0 changelog' | |
| # | |
| # release 2.0.0 - feature2 and feature3 | |
| # | |
| hg up release | |
| hg merge develop | |
| hg ci -m 'preparing version 2.0.0' | |
| echo '2.0.0' > VERSION | |
| (echo 'v2.0.0'; hg changelog) >> CHANGELOG | |
| hg ci -m 'finished preparing version 2.0.0' | |
| hg up default | |
| hg merge release | |
| hg ci -m 'merged release, ready for tag 2.0.0' | |
| hg tag 2.0.0 | |
| hg up develop | |
| hg merge release | |
| hg ci -m "merged release, ready for other features" | |
| # | |
| # release 3.0.0 - feature 4 | |
| # | |
| hg merge feature4 | |
| hg ci -m "[changelog] get feature4" | |
| hg up release | |
| hg merge develop | |
| hg ci -m 'preparing version 3.0.0' | |
| echo '3.0.0' > VERSION | |
| (echo 'v3.0.0'; hg changelog) >> CHANGELOG | |
| hg ci -m 'finished preparing version 3.0.0' | |
| hg up default | |
| hg merge release | |
| hg ci -m 'merged release, ready for tag 3.0.0' | |
| hg tag 3.0.0 | |
| hg up develop | |
| hg merge release | |
| hg ci -m "merged release, ready for other features" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment