Pre-commit hook to prevent accidental submodule regressions
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.2
    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
