diff --git a/pre_commit/git.py b/pre_commit/git.py index 9ec9c9fb..a9261163 100644 --- a/pre_commit/git.py +++ b/pre_commit/git.py @@ -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):