Differences between revisions 11 and 13 (spanning 2 versions)
Revision 11 as of 2010-11-29 20:06:24
Size: 2482
Comment: Move all external links to same place.
Revision 13 as of 2010-12-06 21:56:09
Size: 2637
Editor: JesseGlick
Comment: Updated for recent code changes.
Deletions are marked like this. Additions are marked like this.
Line 34: Line 34:
checkfiles = /path/to/checkfiles.py checkfiles = /path/to/checkfiles.py enable command
Line 39: Line 39:
pre-commit.checkfiles = python:/path/to/checkfiles.py:fixup_hook precommit.checkfiles = python:/path/to/checkfiles.py:fixup_hook
Line 42: Line 42:
# default is any text file
Line 45: Line 46:
# to examine only modified lines from check_hook (no effect on fixup_hook or command), use:
# check_diffs = True
Line 47: Line 50:
=== Usage === == Usage ==

CheckFilesExtension

This extension provides two hooks and a command to prevent committing tabs and trailing whitespaces. The hooks must be explicitly enabled in the hgrc/mercurial.ini file.

1. Status

This extension is not distributed with Mercurial.

Author: MarcusLindblom

2. Overview

By avoiding commits with tab characters or trailing whitespace on lines, there is less noise in the diffs and the actual code changes are clearer.

The extensions adds a command checkfiles which reports issues in the working directory. Using --fixup will instead fix these files by replacing tabs with spaces and

There is also two hooks:

  • check_hook - checks and blocks commits with issues, useable in pretxncommit or pretxnchangegroup

  • fixup_hook - automatically fixes issues in files on commit, useable in pre-commit

3. Configuration

Configure your .hgrc to enable the extension by adding following lines:

[extensions]
checkfiles = /path/to/checkfiles.py enable command

[hooks]
pretxnchangegroup.checkfiles = python:/path/to/checkfiles.py:check_hook
pretxncommit.checkfiles = python:/path/to/checkfiles.py:check_hook
precommit.checkfiles = python:/path/to/checkfiles.py:fixup_hook

[checkfiles]
# default is any text file
checked_exts = .c .h .cpp .xml .cs .html .js .css .txt .py .nsi .java .aspx .asp .bat .cmd .glsl
ignored_files = foo/contains_tabs.txt bar/contains_trailing_ws.txt
tab_size = 4
# to examine only modified lines from check_hook (no effect on fixup_hook or command), use:
# check_diffs = True

4. Usage

hg checkfiles [options]

checks changed files in the working directory for tabs or trailing whitespace

    - --verbose shows the location of offending characters in each line
    - --quiet hides filenames and only reports summary information
    - --debug shows settings and details about each file considered for checking

    If problems are found, the command returns 1, otherwise 0. 
    If --fixup is given, the return value is always 0 (unless an error occurs).

options:

 -f --fixup          fix files by replacing tabs and removing trailing whitespace
 -t --tabsize VALUE  set the tab length (default: 4)

use "hg -v help checkfiles" to show global options


CategoryExtensionsByOthers

CheckFilesExtension (last edited 2012-02-15 19:25:33 by ks3095497)