Skip to content

Instantly share code, notes, and snippets.

@mikeando
Created May 18, 2011 04:15
Show Gist options
  • Save mikeando/977979 to your computer and use it in GitHub Desktop.
Save mikeando/977979 to your computer and use it in GitHub Desktop.
Simple git prepare-commit-msg
import sys
import subprocess
import re
# A normal commit will just have two arguments, this filename and the filename
# of the commit message we want to change. Any other kind of commit we'll be
# cowardly about and just leave as is.
if len(sys.argv)!=2 :
sys.exit(0)
f = open( sys.argv[1], "r" )
lines = f.readlines();
f.close()
# get the branch name
proc = subprocess.Popen(["git", "symbolic-ref", "HEAD"], stdout=subprocess.PIPE)
(branch_name,err) = proc.communicate()
branch_name = branch_name.strip()
#strip out version tags
branch_name = re.sub(r'v\d+\.\d+','', branch_name)
tickets= ",".join( [ ("#"+x) for x in re.split(r'\D+',branch_name) if x != '' ] )
if tickets == "" :
tickets= "#xxx"
f = open( sys.argv[1], "w" )
f.write("[%s] short message\n" %tickets)
f.write("\n")
f.write("longer message.\n")
f.write(" - bullet 1\n")
f.write(" - bullet 2\n")
f.writelines(lines)
sys.exit(0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment