-
-
Notifications
You must be signed in to change notification settings - Fork 314
Description
Description
It looks like PR #1815 introduced a bug where commitizen now attempts to enforce its rules the entire history of the project instead of just between the source and target commits.
This means repositories which have started using commitizen half-way though, or ones in which a faulty commit was added but was ignored due to wanting to avoid rewriting large amounts of history now have commitizen trigger failures when in the past they did not.
After this change, invalid commit messages on main which previously were fine with commitizen are now tripping this check. Are the environment variable you added in the correct order, and is there supposed to be .. between them?
Steps to reproduce
Ok, I made a minumum reproducing repository: https://github.com/KyleMylonakisProtopia/commitizen-pr-1815-bug
Please fork this repository and you can reproduce the issue with the following commands:
git clone git@github.com:KyleMylonakisProtopia/commitizen-pr-1815-bug.git
cd commitizen-pr-1815-bug
uv venv .venv
source .venv/bin/activate
uv pip install -e .
pre-commit install
git checkout -b new_branch
touch new_file
git add new_file
git commit -m "feat: add new file"
git pushFor me this fails with the error:
(.venv) ➜ commitizen-pr-1815-bug git:(new_branch) git push --set-upstream origin new_branch
commitizen check branch..................................................Failed
- hook id: commitizen-branch
- exit code: 14
commit validation: failed!
please enter a commit message in the commitizen format.
commit "2bbee8154e795c7d9f77fd9e190d6d7bf5b9f325": "improperly formatted commit that introduced
"pattern: (?s)(build|bump|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\(\S+\))?!?: ([^\n\r]+)((\n\n.*)|(\s*))?$
commit "3d9318b341828644f23ff772a6f276be47bf825e": "first commit
"pattern: (?s)(build|bump|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\(\S+\))?!?: ([^\n\r]+)((\n\n.*)|(\s*))?$
error: failed to push some refs to 'github.com:KyleMylonakisProtopia/commitizen-pr-1815-bug.git'
Current behavior
The entire history of the repo is being analyzed by commitizen.
Desired behavior
The behavior should be as it was in the past where commits outside of those between source and target are ignored.
Screenshots
No response
Environment
The commitizen is coming in from the pre-commit hook. Pre-commit has specified the commitizen version as 4.12.1. This affects at least Mac and Linux systems.