diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2022-11-22 10:05:20 -0500 |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2022-11-22 10:05:20 -0500 |
commit | 247dc4914b656ea333fc6cb4f6f99f3d79a8a9d3 (patch) | |
tree | bcbb43afd155563c057f2b830f6bf0c1871cfbdb /src/setuptools_scm | |
parent | 21ea82f995cecb6fcc1a3434e4740da7f67f313c (diff) | |
parent | a70d44b5621770a4d4868057a9a1503ab7ac952b (diff) | |
download | setuptools-scm-247dc4914b656ea333fc6cb4f6f99f3d79a8a9d3.tar.gz |
Merge branch 'main' into debt/unused-code
Diffstat (limited to 'src/setuptools_scm')
-rw-r--r-- | src/setuptools_scm/.git_archival.txt | 2 | ||||
-rw-r--r-- | src/setuptools_scm/git.py | 17 |
2 files changed, 15 insertions, 4 deletions
diff --git a/src/setuptools_scm/.git_archival.txt b/src/setuptools_scm/.git_archival.txt index 37d637d..8fb235d 100644 --- a/src/setuptools_scm/.git_archival.txt +++ b/src/setuptools_scm/.git_archival.txt @@ -1,4 +1,4 @@ node: $Format:%H$ node-date: $Format:%cI$ -describe-name: $Format:%(describe)$ +describe-name: $Format:%(describe:tags=true,match=*[0-9]*)$ ref-names: $Format:%D$ diff --git a/src/setuptools_scm/git.py b/src/setuptools_scm/git.py index 27cb159..16ca378 100644 --- a/src/setuptools_scm/git.py +++ b/src/setuptools_scm/git.py @@ -232,9 +232,13 @@ def _git_parse_inner( ) -def _git_parse_describe(describe_output: str) -> tuple[str, int, str, bool]: +def _git_parse_describe( + describe_output: str, +) -> tuple[str, int | None, str | None, bool]: # 'describe_output' looks e.g. like 'v1.5.0-0-g4060507' or # 'v1.15.1rc1-37-g9bd1298-dirty'. + # It may also just be a bare tag name if this is a tagged commit and we are + # parsing a .git_archival.txt file. if describe_output.endswith("-dirty"): dirty = True @@ -242,8 +246,15 @@ def _git_parse_describe(describe_output: str) -> tuple[str, int, str, bool]: else: dirty = False - tag, number, node = describe_output.rsplit("-", 2) - return tag, int(number), node, dirty + split = describe_output.rsplit("-", 2) + if len(split) < 3: # probably a tagged commit + tag = describe_output + number = None + node = None + else: + tag, number_, node = split + number = int(number_) + return tag, number, node, dirty def search_parent(dirname: _t.PathT) -> GitWorkdir | None: |