fix: respect core.hooksPath git config in commit hooks#2173
Open
mangodxd wants to merge 3 commits into
Open
Conversation
Add 4 tests covering the hooksPath behavior: - Absolute hooksPath: hooks in a custom absolute path are found - Relative hooksPath: resolved against working tree root - Fallback: default .git/hooks used when hooksPath not set - Missing hook: no error raised when hook doesn't exist in hooksPath All tests follow the existing test patterns and are xfail-marked for Windows environments without bash.exe. Addresses review request from maintainer (Byron).
Author
|
Tests added. Covers absolute hooksPath, relative hooksPath, fallback to default, and missing hook. All passing on this end. |
- Use Python scripts instead of .sh for hook tests (works on Windows CI) - Write output to working_dir instead of git_dir (bare repo compatibility) - Apply ruff format to git/index/fun.py - Removes xfail dependency on bash.exe for hooksPath tests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
When
core.hooksPathis set in any git config file (system, global, or repository level), commit hooks should be resolved relative to that path instead of the default.git/hooksdirectory.Currently,
run_commit_hook()always useshook_path()which hardcodes{git_dir}/hooks/{name}, ignoring thecore.hooksPathsetting.Changes
In
run_commit_hook(), before falling back to the default hook path viahook_path(), the function now readscore.hooksPathfrom the repo configuration usingconfig_reader().get(). If the setting exists:Testing
test_run_commit_hookcontinues to passFixes #2083