diff options
author | paugier <pierre.augier@univ-grenoble-alpes.fr> | 2021-03-23 09:52:50 +0100 |
---|---|---|
committer | paugier <pierre.augier@univ-grenoble-alpes.fr> | 2021-03-23 09:52:50 +0100 |
commit | ebd205f844e948decd4a370dac5b3409696ec31e (patch) | |
tree | 259970043b3e7e375a7778ce30cd24d1ee01a76b /src/setuptools_scm/hg_git.py | |
parent | 004612997ea7d88ec3ddd74e24d7f554c2654d87 (diff) | |
download | setuptools-scm-ebd205f844e948decd4a370dac5b3409696ec31e.tar.gz |
hg-git: fix 2 corner cases
Diffstat (limited to 'src/setuptools_scm/hg_git.py')
-rw-r--r-- | src/setuptools_scm/hg_git.py | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/setuptools_scm/hg_git.py b/src/setuptools_scm/hg_git.py index 843b44c..c6ac23f 100644 --- a/src/setuptools_scm/hg_git.py +++ b/src/setuptools_scm/hg_git.py @@ -47,22 +47,30 @@ class GitWorkdirHgClient(GitWorkdir, HgWorkdir): if not ret: return node - def node(self): - hg_node = self.get_hg_node() - if hg_node is None: - return - + def _hg2git(self, hg_node): git_node = None with open(os.path.join(self.path, ".hg/git-mapfile")) as file: for line in file: if hg_node in line: git_node, hg_node = line.split() break + return git_node + + def node(self): + hg_node = self.get_hg_node() + if hg_node is None: + return + + git_node = self._hg2git(hg_node) if git_node is None: # trying again after hg -> git self.do_ex("hg gexport") - return self.node() + git_node = self._hg2git(hg_node) + + if git_node is None: + trace("Cannot get git node so we use hg node", hg_node) + return hg_node return git_node[:7] @@ -91,6 +99,9 @@ class GitWorkdirHgClient(GitWorkdir, HgWorkdir): return None, None, None hg_tags = hg_tags.split() + if not hg_tags: + return None, None, None + git_tags = {} with open(os.path.join(self.path, ".hg/git-tags")) as file: for line in file: |