mirror of
https://github.com/j178/prek.git
synced 2026-04-03 17:34:03 +02:00
2.0 KiB
2.0 KiB
Difference from pre-commit
General differences
preksupports both.pre-commit-config.yamland.pre-commit-config.ymlconfiguration files.prekimplements some common hooks frompre-commit-hooksin Rust for better performance.prekuses~/.cache/prekas the default cache directory for repos, environments and toolchains.prekdecoupled hook environment from their repositories, allowing shared toolchains and environments across hooks.preksupportslanguage_versionas a semver specifier and automatically installs the required toolchains.
Workspace mode
prek supports workspace mode, allowing you to run hooks for multiple projects in a single command. Each subproject can have its own .pre-commit-config.yaml file.
See Workspace Mode for more information.
Language support
Python
preksupports Python toolchain management, it will install the required Python versions automatically.prekusesuvfor creating virtual environments and installing dependencies.preksupports Python hooks with PEP 723 inline metadata.
Command line interface
prek run
prek run [HOOK|PROJECT]...supports selecting or skipping multiple projects or hooks in workspace mode. See Running Specific Hooks or Projects for details.prekprovides dynamic completions of hook id.prek run --last-committo run hooks on files changed by the last commit.prek run --directory <DIR>to run hooks on a specified directory.
prek list
prek list command lists all available hooks, their ids, and descriptions. This provides a better overview of the configured hooks.
prek auto-update
prek auto-updateupdates all projects in the workspace to their latest revisions.prek auto-updatechecks updates for the same repository only once, speeding up the process in workspace mode.
prek sample-config
prek sample-configcommand has a--fileoption to write the sample configuration to a specific file.