You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Version numbers are an amazing thing. They make it trivial to figure out whether
or not a program is at the most recent version, and there are even some
relatively sane standards such as semantic versioning which the
Clojure community has adopted as the standard format for version numbers.
As a git flow adherent, while my branching strategy may be elegant I often
find that I neglect my version number bumping. This repo represents one lazy
evening's solution thereto: a VERSION file bump script in Python and a pair of
git-hooks scripts which leverage that file to generate auto-commits that bump
the version file so you don't have to.
Behavior
This setup uses two hooks - the post-commit hook and the post-merge hook.
post-commit - "patch" bump (+ 0.0.1)
post-merge - "minor" bump (+ 0.1.0) when merging to non-master branches
post-merge - "major" bump (+ 1.0.0) when merging to "master"
The idea clearly being that, when combined with git flow, the result will be a
sane and strictly increasing version number indicative of the state of the
project.
Installation
The file bump.py must be located on your path.. I use ~/bin. The files
post-merge and post-commit must be added to the .git/hooks folder of any
and all repos which use this strategy.
Drawbacks
First of all, this tool will at present generate a boatload of auto-commits as
for every commit it will add a subsequent [auto] commit that increments the
patch number. Second of all, the version number is a naive counter in the
extreme and is quite likely to encounter conflicts and collisions between banches.
This will be mitigated by the fact that merges will generate an [auto] with a
minor version bump so under git-flow the MASTER branch will step by 1.0.0 once
conflicts with minor and patch version numbers are resolved. The DEVELOP branch
will step by 0.1.0, again because conflicts with the patch number will be
squashed when merging into the development branch, and finally the individual
FEATURE branches will walk by 0.0.1 blithely independant of one-another.
So basically it may fill your repo with junk, but it'll be useful junk.
License
Copyright Reid McKenzie 2012, made available under the
WTFPBL for your enjoyment.