Skip to content

Commit 4e82375

Browse files
Merge pull request #91 from te-je/master
Case-insensitive path comparison for git on windows. Fixes #89
2 parents a575570 + e7c768a commit 4e82375

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

setuptools_scm/git.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from .utils import do, do_ex, trace
22
from .version import meta
3-
from os.path import abspath, realpath
3+
from os.path import abspath, normcase, realpath
44

55

66
FILES_COMMAND = 'git ls-files'
@@ -12,7 +12,8 @@ def parse(root, describe_command=DEFAULT_DESCRIBE):
1212
if ret:
1313
return
1414
trace('real root', real_root)
15-
if abspath(realpath(real_root)) != abspath(realpath(root)):
15+
if (normcase(abspath(realpath(real_root))) !=
16+
normcase(abspath(realpath(root)))):
1617
return
1718
rev_node, _, ret = do_ex('git rev-parse --verify --quiet HEAD', root)
1819
if ret:

testing/test_regressions.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
import sys
2+
3+
import pytest
4+
from setuptools_scm.git import parse
15
from setuptools_scm.utils import do_ex, do
26

37

@@ -43,3 +47,14 @@ def vs(v):
4347

4448
res = do('python setup.py --version', p)
4549
assert res == '1.0'
50+
51+
52+
@pytest.mark.skipif(sys.platform != 'win32',
53+
reason="this bug is only valid on windows")
54+
def test_case_mismatch_on_windows_git(tmpdir):
55+
"""Case insensitive path checks on Windows"""
56+
p = tmpdir.ensure("CapitalizedDir", dir=1)
57+
58+
do('git init', p)
59+
res = parse(str(p).lower())
60+
assert res is not None

0 commit comments

Comments
 (0)