Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Inspired by <a href="http://wordaligned.org/articles/a-subversion-pre-commit-hook" rel="nofollow">this example</a> : </p> <pre class="lang-py prettyprint-override"><code>#!/bin/env python " Example Subversion pre-commit hook. " def command_output(cmd): " Capture a command's standard output. " import subprocess return subprocess.Popen( cmd.split(), stdout=subprocess.PIPE).communicate()[0] def files_changed(look_cmd): """ List the files added or updated by this transaction. "svnlook changed" gives output like: U trunk/file1.cpp A trunk/file2.cpp """ def filename(line): return line[4:] def added_or_updated(line): return line and line[0] in ("A", "U") return [ filename(line) for line in command_output(look_cmd % "changed").split("\n") if added_or_updated(line)] def check_cpp_files(look_cmd): " Check C++ files in this transaction. " def is_cpp_file(fname): import os return os.path.splitext(fname)[1] in ".cpp .cxx .h".split() cpp_files = [ ff for ff in files_changed(look_cmd) if is_cpp_file(ff)] return len(cpp_files) def main(): usage = """usage: %prog REPOS TXN Run pre-commit options on a repository transaction.""" from optparse import OptionParser parser = OptionParser(usage=usage) parser.add_option("-r", "--revision", help="Test mode. TXN actually refers to a revision.", action="store_true", default=False) errors = 0 try: (opts, (repos, txn_or_rvn)) = parser.parse_args() look_opt = ("--transaction", "--revision")[opts.revision] look_cmd = "svnlook %s %s %s %s" % ( "%s", repos, look_opt, txn_or_rvn) if check_cpp_files_for_tabs(look_cmd) &gt; 0: # check the length of the commit message :D # if not correct, print the error on sys.stderr.write("Please write a log message describing the purpose of your changes and then try committing again.") except: parser.print_help() errors += 1 return errors if __name__ == "__main__": import sys sys.exit(main()) </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload