Skip to content

Instantly share code, notes, and snippets.

@ajmirsky
Created September 27, 2011 13:56
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ajmirsky/1245103 to your computer and use it in GitHub Desktop.
Save ajmirsky/1245103 to your computer and use it in GitHub Desktop.
post-commit hook for tagging a release version
#!/usr/bin/python
# place in .git/hooks/post-commit
import commands, re
print "checking for version change...",
status, output = commands.getstatusoutput('git diff HEAD HEAD^ -U0')
version_info = None
for d in output.split("\n"):
rg = re.compile("\+VERSION\s?\=\s?\((?P<major>[0-9]+)\s?\,\s?(?P<minor>[0-9]+)\s?\,\s?(?P<rev>[0-9]+)\s?\)")
m = rg.search(d)
if m:
version_info = m.groupdict()
break
if version_info:
tag = "%s.%s.%s" % (version_info['major'], version_info['minor'], version_info['rev'])
status, output = commands.getstatusoutput('git tag -f %s' % tag)
if status:
raise Exception('tagging not successful: %s %s' % (output, status))
print "tagged revision: %s" % tag
else:
print "none found."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment