Don't report markup titles as merge conflicts Several markup formats, such as Markdown or Re(Structured)Text can format titles as text with '=' characters as double underlining, like this: ``` My Page Title ============= Lorem ipsum... ``` Rather that considering any line starting with seven '=' as a conflict marker, require a space (or line-ending newline) after the equals. This could still create a false positive for a seven character title, like "Problem", but the markup formats generally allow extra '=' characters, so by formatting the text like this: ``` Problem ======== Not... ``` these pre-commit warnings can be avoided. Also updates the tests to add newlines for more realistic conflict files (while a file might not end with a newline, conflict markers will). Prevent false negative on test_does_not_care_when_not_in_a_conflict() by making sure that README.md contains a line identical to a conflict string (exactly seven '=' followed by a newline).
Some out-of-the-box hooks for pre-commit.
See also: https://github.com/pre-commit/pre-commit
Add this to your .pre-commit-config.yaml
- repo: git://github.com/pre-commit/pre-commit-hooks
sha: '' # Use the sha you want to point at
hooks:
- id: trailing-whitespace
# - id: ...
autopep8-wrapper - Runs autopep8 over python source. (You'll want args: ['-i] when using this hook, see .pre-commit-config.yaml for an example.)check-added-large-files - Prevent giant files from being committed.check-case-conflict - Check for files that would conflict in case-insensitive filesystems.check-docstring-first - Checks a common error of defining a docstring after code.check-json - Attempts to load all json files to verify syntax.check-merge-conflict - Check for files that contain merge conflict strings.check-xml - Attempts to load all xml files to verify syntax.check-yaml - Attempts to load all yaml files to verify syntax.debug-statements - Check for pdb / ipdb / pudb statements in code.detect-private-key - Checks for the existence of private keysdouble-quote-string-fixer - This hook replaces double quoted strings with single quoted stringsend-of-file-fixer - Makes sure files end in a newline and only a newline.flake8 - Run flake8 on your python filesname-tests-test - Assert that files in tests/ end in _test.pypyflakes - Run pyflakes on your python filesrequirements-txt-fixer - Sorts entries in requirements.txttrailing-whitespace - Trims trailing whitespace.If you‘d like to use these hooks, they’re also available as a standalone package.
Simply pip install pre-commit-hooks