Skip to content

Commit 951ad9f

Browse files
Merge pull request #130 from pypa/fix-128
fix issue #128: return None from missmatched parse calls
2 parents a91ac1d + acf760b commit 951ad9f

File tree

6 files changed

+27
-2
lines changed

6 files changed

+27
-2
lines changed

CHANGELOG.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
v1.15.2
2+
=======
3+
4+
* fix issue #128: return None when a scm specific parse fails in a worktree to ease parse reuse
5+
6+
17
v1.15.1
28
=======
39

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ def scm_config():
3434
local_scheme=get_local_node_and_date,
3535
)
3636

37+
3738
with open('README.rst') as fp:
3839
long_description = fp.read()
3940

setuptools_scm/git.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,10 @@ def parse(root, describe_command=DEFAULT_DESCRIBE, pre_parse=warn_on_shallow):
7777
"""
7878
if not has_command('git'):
7979
return
80-
wd = GitWorkdir(root)
80+
81+
wd = GitWorkdir.from_potential_worktree(root)
82+
if wd is None:
83+
return
8184
if pre_parse:
8285
pre_parse(wd)
8386
rev_node = wd.node()

setuptools_scm/hg.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ def parse(root):
2626
if not has_command('hg'):
2727
return
2828
l = do('hg id -i -t', root).split()
29+
if not l:
30+
return
2931
node = l.pop(0)
3032
tags = tags_to_versions(l)
3133
# filter tip in degraded mode on old setuptools

testing/test_git.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,12 @@ def test_find_files_stop_at_root_git(wd):
9292
assert integration.find_files(str(wd.cwd/'project')) == []
9393

9494

95+
@pytest.mark.issue(128)
96+
def test_parse_no_worktree(tmpdir):
97+
ret = git.parse(str(tmpdir))
98+
assert ret is None
99+
100+
95101
def test_alphanumeric_tags_match(wd):
96102
wd.commit_testfile()
97103
wd('git tag newstyle-development-started')

testing/test_mercurial.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from setuptools_scm import format_version
2-
from setuptools_scm.hg import archival_to_version
2+
from setuptools_scm.hg import archival_to_version, parse
33
from setuptools_scm import integration
44

55
import pytest
@@ -12,6 +12,7 @@ def wd(wd):
1212
wd.commit_command = 'hg commit -m test-{reason} -u test -d "0 0"'
1313
return wd
1414

15+
1516
archival_mapping = {
1617
'1.0': {'tag': '1.0'},
1718
'1.1.dev3+n000000000000': {
@@ -101,3 +102,9 @@ def test_version_in_merge(wd):
101102
wd.commit_testfile()
102103
wd('hg merge --tool :merge')
103104
assert wd.version is not None
105+
106+
107+
@pytest.mark.issue(128)
108+
def test_parse_no_worktree(tmpdir):
109+
ret = parse(str(tmpdir))
110+
assert ret is None

0 commit comments

Comments
 (0)