Open
Description
Issue: Repo.Index.commit fails during execution of post-commit hook
Root Cause: The .git config does not reside inside the submodule repository in the problematic setup.
Repo/SubmoduleA$ cat .git
gitdir: ../.git/modules/SubmoduleA
However, this is expected by the commit hook on windows:
if sys.platform == "win32" and not _has_file_extension(hp):
# Windows only uses extensions to determine how to open files
# (doesn't understand shebangs). Try using bash to run the hook.
relative_hp = Path(hp).relative_to(index.repo.working_dir).as_posix()
cmd = ["bash.exe", relative_hp]
Reproduce: Track files with git-lfs and have the hooks outside the repository directory
Fix:
if sys.platform == "win32" and not _has_file_extension(hp):
# Windows only uses extensions to determine how to open files
# (doesn't understand shebangs). Try using bash to run the hook.
relative_hp = Path(hp).relative_to(index.repo.working_dir, walk_up=True).as_posix()
cmd = ["bash.exe", relative_hp]