summaryrefslogtreecommitdiff
path: root/git/repo/fun.py
diff options
context:
space:
mode:
Diffstat (limited to 'git/repo/fun.py')
-rw-r--r--git/repo/fun.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/git/repo/fun.py b/git/repo/fun.py
index 5fe8682d..7ea45e6b 100644
--- a/git/repo/fun.py
+++ b/git/repo/fun.py
@@ -6,13 +6,14 @@ from git.compat import xrange
from git.exc import WorkTreeRepositoryUnsupported
from git.objects import Object
from git.refs import SymbolicReference
-from git.util import hex_to_bin, bin_to_hex
+from git.util import hex_to_bin, bin_to_hex, decygpath
from gitdb.exc import (
BadObject,
BadName,
)
import os.path as osp
+from git.cmd import Git
__all__ = ('rev_parse', 'is_git_dir', 'touch', 'find_git_dir', 'name_to_object', 'short_to_long', 'deref_tag',
@@ -59,6 +60,9 @@ def find_git_dir(d):
else:
if content.startswith('gitdir: '):
path = content[8:]
+ if Git.is_cygwin():
+ ## Cygwin creates submodules prefixed with `/cygdrive/...` suffixes.
+ path = decygpath(path)
if not osp.isabs(path):
path = osp.join(osp.dirname(d), path)
return find_git_dir(path)