mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-01-16 22:10:07 -06:00
Merge pull request #832 from pre-commit/rev_parse_error_mode
Fix rev-parse for older git versions
This commit is contained in:
@@ -31,16 +31,13 @@ def get_root():
|
||||
|
||||
|
||||
def get_git_dir(git_root):
|
||||
def _git_dir(opt):
|
||||
return os.path.normpath(os.path.join(
|
||||
git_root,
|
||||
cmd_output('git', 'rev-parse', opt, cwd=git_root)[1].strip(),
|
||||
))
|
||||
|
||||
try:
|
||||
return _git_dir('--git-common-dir')
|
||||
except CalledProcessError: # pragma: no cover (git < 2.5)
|
||||
return _git_dir('--git-dir')
|
||||
opts = ('--git-common-dir', '--git-dir')
|
||||
_, out, _ = cmd_output('git', 'rev-parse', *opts, cwd=git_root)
|
||||
for line, opt in zip(out.splitlines(), opts):
|
||||
if line != opt: # pragma: no branch (git < 2.5)
|
||||
return os.path.normpath(os.path.join(git_root, line))
|
||||
else:
|
||||
raise AssertionError('unreachable: no git dir')
|
||||
|
||||
|
||||
def get_remote_url(git_root):
|
||||
|
||||
Reference in New Issue
Block a user