- Fix regression in 0.13.5: allow
always_runandfilestogether despite doing nothing.
- 0.13.4 contained incorrect files
- Add
--show-diff-on-failureoption topre-commit run - Replace
jsonschemawith better erorr messages
- Add
--allow-missing-configto install: allowsgit commitwithout a configuration.
- Version the local hooks repo
- Allow
minimum_pre_commit_versionfor local hooks
- Fix dummy gem for ruby local hooks
- Autoupdate now works even when the current state is broken.
- Improve pre-push fileset on new branches
- Allow "language local" hooks, hooks which install dependencies using
additional_dependenciesandlanguageare now allowed inrepo: local.
- Fix docker hooks on older (<1.12) docker
- golang hooks now support additional_dependencies
- Added a --tags-only option to pre-commit autoupdate
- The new default file for implementing hooks in remote repositories is now .pre-commit-hooks.yaml to encourage repositories to add the metadata. As such, the previous hooks.yaml is now deprecated and generates a warning.
- Fix bug with local configuration interfering with ruby hooks
- Added support for hooks written in golang.
- SwiftPM support.
- shlex entry of docker based hooks.
- Make shlex behaviour of entry more consistent.
- Add an
install-hookscommand similar toinstall --install-hooksbut without theinstallside-effects. - Adds support for docker based hooks.
- Warn when cygwin / python mismatch
- Add --config for customizing configuration during run
- Update rbenv + plugins to latest versions
- pcre hooks now fail when grep / ggrep are not present
- Fix python hook installation when a strange setup.cfg exists
- Remove some python2.6 compatibility
- UI is no longer sized to terminal width, instead 80 characters or longest necessary width.
- Fix inability to create python hook environments when using venv / pyvenv on osx
- Remove some python2.6 compatibility
- Fix staged-files-only with external diff tools
- Only consider forward diff in changed files
- Don't run on staged deleted files that still exist
- Autoupdate to tags when available
- Stop supporting python2.6
- Fix crash with staged files containing unstaged lines which have non-utf8 bytes and trailing whitespace
- Fix a crash introduced in 0.8.0 when an executable was not found
- Fix regression introduced in 0.8.0 when already using rbenv with no configured ruby hook version
- Fix --files when running in a subdir
- Improve --help a bit
- Switch to pyterminalsize for determining terminal size
- Work under latest virtualenv
- No longer create empty directories on windows with latest virtualenv
- Consider dead symlinks as files when committing
- Produce error message instead of crashing on non-utf8 installation failure
- Fix regression introduced in 0.7.1 breaking
git commit -a
- Add
always_runsetting for hooks to run even without file changes.
- Support running pre-commit inside submodules
- Store state about additional_dependencies for rollforward/rollback compatibility
- Build as a universal wheel
- Allow '.format('-like strings in arguments
- Add an option to require a minimum pre-commit version
- Print a useful message when a hook id is not present
- Fix printing of non-ascii with unexpected errors
- Print a message when a hook modifies files but produces no output
- Add
additional_dependenciesto hook configuration. - Fix pre-commit cloning under git 2.6
- Small improvements for windows
- Allow args for pcre hooks
- Fix regression introduced in 0.6.3 regarding hooks which make non-utf8 diffs
- Remove
expected_return_code - Fail a hook if it makes modifications to the working directory
- Use --no-ri --no-rdoc instead of --no-document for gem to fix old gem
- Fix pre-push when pushing something that's already up to date
- Filter hooks by stage (commit, push).
- Change permissions a few files
- Rename the validate entrypoints
- Add --version to some entrypoints
- Add --no-document to gem installations
- Use expanduser when finding the python binary
- Suppress complaint about $TERM when no tty is attached
- Support pcre hooks on osx through ggrep
- Allow hooks to produce outputs with arbitrary bytes
- Fix pre-commit install when .git/hooks/pre-commit is a dead symlink
- Allow an unstaged config when using --files or --all-files
- Fix autoupdate with "local" hooks - don't purge local hooks.
- Fix autoupdate with "local" hooks
- Fix bug with unknown non-ascii hook-id
- Avoid crash when .git/hooks is not present in some git clients
- Add a new "local" hook type for running hooks without remote configuration.
- Complain loudly when .pre-commit-config.yaml is unstaged.
- Better support for multiple language versions when running hooks.
- Allow exclude to be defaulted in repository configuration.
- Use sys.executable when executing virtualenv
- Use reset instead of checkout when checkout out hook repo
- Limit length of xargs arguments to workaround windows xargs bug
- Don't rename across devices when creating sqlite database
- Make ^C^C During installation not cause all subsequent runs to fail
- Print while installing (instead of while cloning)
- Use sqlite to manage repositories (instead of symlinks)
- MVP Windows support
argsin venv'd languages are now property quoted.
- Support running during
pre-push. See http://pre-commit.com/#advanced 'pre-commit during push'.
- Allow hook providers to default
argsinhooks.yaml
- Improve message for
CalledProcessError
- Fix for
staged_files_onlywith color.diff = always #176.
- Fix error clobbering #174.
- Remove dependency on
plumbum. - Allow pre-commit to be run from anywhere in a repository #175.
- Add
--filesoption topre-commit run
- Fix terminal width detection (broken in 0.2.10)
- Bump version of nodeenv to fix bug with ~/.npmrc
- Choose
pythonmore intelligently when running.
- Fix bug where sys.stdout.write must take
bytesin python 2.6
- Allow a client to have duplicates of hooks.
- Use --prebuilt instead of system for node.
- Improve some fatal error messages
- Produce output when running pre-commit install --install-hooks
- Print hookid on failure
- Use sys.executable for running nodeenv
- Allow running as
python -m pre_commit
- Default columns to 80 (for non-terminal execution).
- Support --install-hooks as an argument to
pre-commit install - Install hooks before attempting to run anything
- Use
python -m nodeenvinstead ofnodeenv
- Freeze ruby building infrastructure
- Fix bug that assumed diffs were utf-8
- Fix filenames with spaces
- Use either
pre-commitorpython -m pre_commit.maindepending on which is available - Don't use readlink -f
- Fix for merge-conflict during cherry-picking.
- Add -V / --version
- Add migration install mode / install -f / --overwrite
- Add
pcre"language" for perl compatible regexes - Reorganize packages.
- Fixed bug with autoupdate setting defaults on un-updated repos.
- Initial Release