Michael Bolin
40c83283d6
[rfc] Support Sapling (alternative SCM) when using precommit
...
When using [Sapling SCM](https://sapling-scm.com/ ) with a Git
repository, precommit expectedly fails today because it shells
out to `git` to get the list of modified files in the working
copy. In a Sapling clone of a Git repository, these calls will
fail.
While most of the logic in precommit that deals with talking
to Git today is encapsulated in `git.py`, calls to `git` are
sprinkled throughout the project and are called directly. In
order to support alternative SCMs, such as Sapling, ideally
there would be a more generic "SCM" interface that business
logic would call into with both Git and Sapling implementations.
Though this PR does not attempt to introduce such an interface.
Instead, it is just a basic PoC to provide evidence that
something like this could be made to work. For the moment, it
takes a shortcut and simply sprinkles "if Sapling" checks
in `git.py` in enough places that I could get precommit to
run in a Sapling working copy in the simple case where I had
only one file modified locally.
My higher-level question is whether the precommit project
would be open to accepting changes to support Sapling,
either via the introduction of an SCM-agnostic interface or
some other means.
2024-03-01 15:52:20 -08:00
Anthony Sottile
61d9c95cc1
fix building golang hooks during commit --all
2024-02-18 13:03:44 -05:00
Anthony Sottile
032d8e2704
staged_files_only can handle a crlf-only diff
2024-02-10 14:01:49 -05:00
pre-commit-ci[bot]
96e0712f43
[pre-commit.ci] auto fixes from pre-commit.com hooks
...
for more information, see https://pre-commit.ci
2024-01-12 16:32:44 +00:00
Markus Unterwaditzer
3388e2dbdf
Pop PYTHONEXECUTABLE
2024-01-12 17:30:01 +01:00
Anthony Sottile
7dc0a59ee5
Merge pull request #3093 from pre-commit/removeprefix
...
python 3.9+: use removeprefix
2023-12-09 16:13:25 -05:00
Anthony Sottile
08478ec176
python 3.9+: use removeprefix
2023-12-09 16:04:25 -05:00
Anthony Sottile
047439abff
attempt minimum_pre_commit_version first when parsing configs
2023-12-09 15:34:16 -05:00
Edgar Ramírez Mondragón
cffabe54be
Address deprecation warning in shutil.rmtree(onerror=...)
2023-12-09 14:51:01 -05:00
Anthony Sottile
75f2710bd4
3.13 removed the simpler importlib.resources api
2023-10-28 14:39:49 -04:00
Anthony Sottile
7f15dc75ee
python3.9+
2023-10-28 14:20:37 -04:00
Anthony Sottile
c9945b9aa3
Merge pull request #3029 from adamchainz/improve_duration_timing
...
Improve hook duration timing
2023-10-13 11:49:53 -04:00
Adam Johnson
d988767b41
Improve hook duration timing
2023-10-13 16:40:30 +01:00
Max R
5d692d7e06
Short-circuit hooks
2023-09-11 19:41:40 -04:00
Roel Adriaans
493c20ce91
Use the --include command, hides warning messages
...
Fixes #1983
2023-09-08 15:12:54 +02:00
Joe Bateson
ea8244b229
Use os.sched_getaffinity for cpu counts when available
2023-08-30 13:39:20 -04:00
Chris Kuehl
5a4b5b1f8e
Fix exit code for commands terminated by signals
...
Fixes https://github.com/pre-commit/pre-commit/issues/2970
2023-08-21 20:02:27 -05:00
Alex Brandt
60273ca81e
Add haskell language support to pre-commit.
2023-07-22 16:28:48 -04:00
Anthony Sottile
1c439b5a79
shlex.join is always available in 3.8+
2023-07-01 17:22:42 -04:00
pre-commit-ci[bot]
50b1511a5b
[pre-commit.ci] auto fixes from pre-commit.com hooks
...
for more information, see https://pre-commit.ci
2023-06-13 22:04:03 +00:00
Jay Soffian
9a7ed8be09
Force gem installation into envdir
...
RubyGems allows OS packagers to specify defaults for `--install-dir`
and `--bindir` and these take precedence over `GEM_HOME`. The only way
to override the defaults is to explicitly specify the options ourselves
when running `gem install`.
Examples of OSes where this is the case are RedHat 9.2 and Gentoo.
Fixes #2799 .
2023-06-13 18:03:52 -04:00
Lorenz Walthert
cd09c3525e
avoid quoting and escaping while installing R hooks by writing code to tempfile instead of execute R code inline
2023-05-17 18:00:00 -04:00
Anthony Sottile
8923fa368a
r does not support language_version currently
2023-05-13 15:46:34 -04:00
Anthony Sottile
420a15f87e
add partial clone hack to fix autoupdate for windows
2023-05-02 09:54:25 -04:00
Anthony Sottile
ddbee32ad0
add --jobs option to autoupdate
2023-04-29 15:42:01 -04:00
Anthony Sottile
4f045cbc21
perform autoupdate without Store contention
2023-04-29 15:32:20 -04:00
Anthony Sottile
e885f2e76e
use -C for git commands in autoupdate
2023-04-29 15:12:51 -04:00
Anthony Sottile
4727922b93
use blobless clone for faster autoupdate
2023-04-29 13:29:00 -04:00
Jamie Alessio
cfcb88364e
Upgrade to ruby-build v20230330
2023-04-18 10:58:57 -07:00
Eric DeLabar
84f040f58a
fix #2235
2023-04-03 15:50:55 -04:00
Anthony Sottile
ee71a9345c
set CARGO_HOME while executing rustup
2023-03-25 13:06:22 -04:00
Anthony Sottile
a412e5492d
don't set CARGO_HOME in rust
...
this adds a 270 MB registry cache in the output
2023-03-17 12:55:34 -04:00
Marcelo Galigniana
f39154f69f
Add pre-rebase hook support
2023-03-11 15:17:42 -05:00
Anthony Sottile
e3e17a1617
make --hook-type and stages match
2023-03-11 14:26:14 -05:00
marsha
5ce4a549d3
prefer sys.platform over os.name when checking for windows OS
2023-03-03 22:13:07 -06:00
Anthony Sottile
2700a7d622
set RUSTUP_HOME when using a non-system rust
2023-02-27 20:49:22 -05:00
Anthony Sottile
a631abdabf
remove sorting for repo key for additional_deps
...
in other languages this order can matter (such as ruby)
2023-02-22 20:31:14 -05:00
Anthony Sottile
4ded56efac
fix trailing whitespace in CalledProcessError output
2023-02-21 12:42:09 -05:00
Anthony Sottile
cddc9cff0f
only treat exit code 1 as a successful diff
2023-02-21 12:20:25 -05:00
Anthony Sottile
08fa5ffc43
make a change to trigger the language tests
2023-02-21 11:11:44 -05:00
Anthony Sottile
8d84a7a270
resources_bytesio is only used by ruby
2023-02-20 21:47:01 -05:00
Anthony Sottile
d3883ce7f7
move languages.all and languages.helpers out of languages
2023-02-20 18:03:45 -05:00
marsha
8db5aaf4f3
future-proof dotnet build command
...
see https://github.com/dotnet/sdk/issues/30624#issuecomment-1435457318
2023-02-17 21:34:24 -06:00
marsha
915b930a5d
test dotnet directly
2023-02-07 21:47:26 -06:00
Anthony Sottile
0afb95ccca
test docker and docker_image directly
2023-02-04 17:22:06 -05:00
Anthony Sottile
0c1267b214
deprecate python_venv language
2023-02-04 14:26:09 -05:00
Adam Johnson
7783a3e63a
Add --no-textconv to git diff calls
2023-02-03 15:56:11 +00:00
Anthony Sottile
7260d24d0f
Revert "also ignore Gemfile in project"
...
This reverts commit f4bd44996c .
2023-02-01 18:17:24 -05:00
Anthony Sottile
420902f67c
fix r local hooks
...
`language: r` acts more like `language: script` so we have to *not* append
the prefix when run with `repo: local`
2023-01-29 17:27:42 -05:00
Anthony Sottile
f4bd44996c
also ignore Gemfile in project
...
this starts failing with ruby 3.2.0
2023-01-28 16:44:44 -05:00