Pre-commit hook to prevent accidental submodule regressions
NOTE: This is fork from https://github.com/erikogan/prevent-submodule-regression/ which sadly seems to be abandoned and adds fixes which await merging in the original repository.
Do you find yourself (or your collaborators) constantly rolling back submodule
SHAs because someone forgot to git submodule update
before running git add .
or git commit -a …
?
This pre-commit plugin will prevent those nasty surprises from making their way into your repositories.
The simplest way to use this package is as a plugin to pre-commit.
A sample configuration:
repos:
# […]
- repo: https://github.com/erikogan/prevent-submodule-regression
rev: v0.1.3
hooks:
- id: prevent-submodule-regression
# By default hooks only operate on plain files, which do not include
# submodules. This setting has been added to the hook configuration,
# and should only be necessary if you are running a version older than
# 0.1.2. Keeping it here for posterity, it can safely be skipped.
types: [directory]
Example failure output:
pip install prevent-submodule-regression [path…]
If you run the script with no arguments, it will automatically find all the configured submodules. You can also pass it a list of files to check.
It will currently ignore any path that is not staged to be commit. A future version of the script will have an argument to override that behavior.
In no particular order:
- Actual tests
- Ways to override the error and allow you to commit a regression.
- Command-line
- Environment variables
- Ways to override (or disable) colorization codes
- Command-line
- Environment variables
- Usage information via
--help
- Actual command-line flag parsing