##// END OF EJS Templates
debian: switch to using debhelper and dh_python2 to build debs...
debian: switch to using debhelper and dh_python2 to build debs This is a much larger commit than I'd like, but I honestly don't see a good way to break it up and leave things working. Summary: We now use debian/rules with debhelper to build our debs. This is much more standard, and means we use dh_python2 to do things like handle leaving .pyc files out of the built debs. The resulting package is split into mercurial and mercurial-common, with the former being the hg stub and all the native .sos, and the latter being basically everything else. builddeb and dockerdeb are updated to use the new system. The old way (using dpkg by hand) breaks with the above changes because debian/control no longer contains a version string (that's now guessed from the phony changelog.) Tests are updated to assert that the right files end up in the right debs.

File last commit:

r25643:6f6c97d2 default
r26148:7f49efca default
Show More
check-commit
57 lines | 1.7 KiB | text/plain | TextLexer
Matt Mackall
contrib: add check-commit hook script to sanity-check commits
r22043 #!/usr/bin/env python
#
# Copyright 2014 Matt Mackall <mpm@selenic.com>
#
# A tool/hook to run basic sanity checks on commits/patches for
# submission to Mercurial. Install by adding the following to your
# .hg/hgrc:
#
# [hooks]
# pretxncommit = contrib/check-commit
#
# The hook can be temporarily bypassed with:
#
# $ BYPASS= hg commit
#
# See also: http://mercurial.selenic.com/wiki/ContributingChanges
import re, sys, os
errors = [
(r"[(]bc[)]", "(BC) needs to be uppercase"),
(r"[(]issue \d\d\d", "no space allowed between issue and number"),
Pierre-Yves David
check-commit: be more picky about detection of wrong bug tag...
r24703 (r"[(]bug(\d|\s)", "use (issueDDDD) instead of bug"),
Matt Mackall
contrib: add check-commit hook script to sanity-check commits
r22043 (r"^# User [^@\n]+$", "username is not an email address"),
(r"^# .*\n(?!merge with )[^#]\S+[^:] ",
"summary line doesn't start with 'topic: '"),
(r"^# .*\n[A-Z][a-z]\S+", "don't capitalize summary lines"),
Eric Sumner
check-commit: check capitalization in summary lines...
r24049 (r"^# .*\n[^\n]*: *[A-Z][a-z]\S+", "don't capitalize summary lines"),
Matt Mackall
contrib: add check-commit hook script to sanity-check commits
r22043 (r"^# .*\n.*\.\s+$", "don't add trailing period on summary line"),
Augie Fackler
check-commit: print limit when user has a too-long summary
r25137 (r"^# .*\n.{78,}", "summary line too long (limit is 78)"),
Matt Mackall
check-commit: spot growing whitespace...
r22058 (r"^\+\n \n", "adds double empty line"),
Yuya Nishihara
check-commit: catch both patterns of double empty lines
r25643 (r"^ \n\+\n", "adds double empty line"),
Gregory Szorc
check-commit: make foo_bar naming regexp less greedy...
r25379 (r"^\+[ \t]+def [a-z]+_[a-z]", "adds a function with foo_bar naming"),
Matt Mackall
contrib: add check-commit hook script to sanity-check commits
r22043 ]
node = os.environ.get("HG_NODE")
if node:
commit = os.popen("hg export %s" % node).read()
else:
commit = sys.stdin.read()
exitcode = 0
for exp, msg in errors:
m = re.search(exp, commit, re.MULTILINE)
if m:
pos = 0
for n, l in enumerate(commit.splitlines(True)):
pos += len(l)
if pos >= m.end():
print "%d: %s" % (n, msg)
print " %s" % l[:-1]
if "BYPASS" not in os.environ:
exitcode = 1
break
sys.exit(exitcode)