Commit Graph

73 Commits

Author SHA1 Message Date
Anthony Sottile
b1389603e0 Speed up filename filtering.
Before there was a `getcwd` syscall for every filename which was filtered.

Instead this is now cached per-run.

- When all files are identified by filename only: ~45% improvement
- When no files are identified by filename only: ~55% improvement

This makes little difference to overall execution, the bigger win is
eliminating the `memoize_by_cwd` hack.  Just removing the memoization would
have *increased* the runtime by 300-500%.
2019-01-23 20:48:41 -08:00
Anthony Sottile
bd65d8947f Implement default_stages 2019-01-06 10:32:58 -08:00
Anthony Sottile
bdc58cc33f Teach pre-commit try-repo to clone uncommitted changes 2019-01-01 15:01:36 -08:00
Anthony Sottile
c577ed92e7 Refactor pre_commit.repository and factor out cached-property 2018-12-30 20:56:49 -08:00
Pedro Algarvio
8ffd1f69d7 Address review comments 2018-12-27 17:18:11 +00:00
Pedro Algarvio
79c8b1fceb Allow hook alias to be used in SKIP. Includes test. 2018-12-27 12:03:27 +00:00
Pedro Algarvio
5840f880a9 Address review comments and test failures 2018-12-27 12:03:27 +00:00
Pedro Algarvio
b096c0b8f2 Allow aliasing a hook and calling it by it's alias 2018-12-27 12:03:27 +00:00
Anthony Sottile
fe409f1a43 Remove stateful Runner 2018-12-26 22:33:21 -08:00
Matt Layman
fd1bc21d8e Use parens instead of different logic pattern. 2018-07-19 23:27:29 -04:00
Matt Layman
4640dc7b4a Run only the specified hook even when stages exist in config.
This branches fixes the run logic so that when
`pre-commit run some_hook -a` runs when the config contains
`stages: ['commit']` for some other hook, only the hook specified as an
argument will run.

Fixes #772
2018-07-19 21:45:43 -04:00
Anthony Sottile
c947a0935d Fix buffering in --show-diff-on-failure 2018-07-17 18:24:16 -07:00
Anthony Sottile
c01ffc83f8 Separate store from runner 2018-06-29 22:35:53 -07:00
Anthony Sottile
5b6a5abae9 Consistent ordering of filenames 2018-06-11 12:49:45 -07:00
Bastien Gérard
b319d6f80c Add a hook option that allows stdout to be printed when exit code is 0 (#695) 2018-02-01 12:21:19 +01:00
Anthony Sottile
d5dcebf671 Deprecate the pcre language 2018-01-13 17:28:19 -08:00
Anthony Sottile
df38e1010b Remove unused import 2018-01-09 08:49:42 -08:00
Iulian Onofrei
81df782c20 Update unstaged config file error message 2018-01-09 18:10:05 +02:00
Iulian Onofrei
8407b92b18 Replace string literals with constants 2018-01-09 17:51:41 +02:00
Anthony Sottile
029ccc47c8 Invoke git diff without a pager 2018-01-07 20:56:17 -08:00
Anthony Sottile
10912fa03e Lazily install repositories 2017-10-20 13:04:33 -07:00
Anthony Sottile
18c9e061d8 Small cleanups 2017-09-30 15:53:44 -07:00
Anthony Sottile
ecdc22ce80 Implement global exclude 2017-09-10 15:09:44 -07:00
Anthony Sottile
6af60158ec Refactor filename collection for hooks 2017-09-09 22:07:27 -07:00
Anthony Sottile
898a3ea1bb Implement fail_fast. 2017-09-08 13:19:00 -07:00
Anthony Sottile
6141c419ee Remove Runner.cmd_runner and Store.cmd_runner 2017-09-05 14:49:31 -07:00
Anthony Sottile
0815108242 Handle non-ascii filenames from git 2017-09-05 08:10:16 -07:00
Anthony Sottile
bba711f468 Remove extra newline on error() call 2017-08-23 14:20:44 -07:00
Anthony Sottile
6793fd8e5d Remove --no-stash and --allow-unstaged-config 2017-08-23 11:16:37 -07:00
Anthony Sottile
d0b268c813 Add support for commit-msg git hook 2017-07-23 20:50:25 -07:00
Anthony Sottile
0c70fa4229 Use asottile/add-trailing-comma 2017-07-12 18:30:51 -07:00
Anthony Sottile
05a108efe1 Implement exclude_types 2017-07-02 19:08:33 -07:00
Anthony Sottile
a58d99ac40 Implement types filtering 2017-07-02 18:51:23 -07:00
Anthony Sottile
a68c1ab0d2 Add 'types' to the schema 2017-07-02 13:20:39 -07:00
Anthony Sottile
7b6ea994b8 Expose --source and --origin as environment variables 2017-06-27 10:08:16 -07:00
Anthony Sottile
321210d332 Run git diff with --no-ext-diff 2017-06-09 08:34:04 -07:00
Anthony Sottile
e150921c75 Followup to #533, match no files when omitted 2017-06-02 08:39:10 -07:00
Dain Liffman
d731652a22 Fix for #533 2017-05-31 10:09:42 +08:00
André Berti Sassi
e774c09fac Add pass_filenames hook option
This option controls whether filenames are passed along as arguments to
the hook program.
2017-05-13 14:28:17 -03:00
Anthony Sottile
840a55bbc3 Fixup log_file commit 2017-05-08 11:04:07 -07:00
Alex Hutton
f2644a4f2e Adds support for 'log_file' in hook config
Specify a filename on a per hook basis and
pre-commit will write the STDOUT and STDERR
of that hook into the file. Useful for CI.

Resolves #499.
2017-05-08 10:54:04 +10:00
Anthony Sottile
05c88738b0 Add a --show-diff-on-failure option 2017-02-25 10:14:17 -08:00
Anthony Sottile
ba75867c93 py27+ syntax improvements 2017-01-21 11:49:53 -08:00
Anthony Sottile
a7169905dc Centralize logging initialization 2016-11-26 14:19:37 -08:00
Anthony Sottile
0dda19f691 Reorganize output writing 2016-11-26 12:15:55 -08:00
Anthony Sottile
e832ddc57f Merge pull request #408 from pre-commit/no_pyterminalsize
Use 80 or min width instead of terminal size
2016-10-23 16:48:53 -07:00
Anthony Sottile
b81c9802ae Remove py26 format literals
Resolves #403
2016-09-15 08:41:58 -07:00
Anthony Sottile
a677c42e21 Use 80 or min width instead of terminal size 2016-08-31 17:15:52 -07:00
vinay karanam
81d7efa7bb only consider forward diff in changed files 2016-05-25 14:44:59 +05:30
Anthony Sottile
b7d395410b Implement a simplified xargs in python 2016-03-25 11:21:50 -07:00