コード例 #1
0
    def resolve_rev(self, rev: str) -> str:
        from dvc.repo.experiments.utils import exp_refs_by_name

        try:
            return self._resolve_rev(rev)
        except RevError:
            # backends will only resolve git branch and tag names,
            # if rev is not a sha it may be an abbreviated experiment name
            if not self.is_sha(rev) and not rev.startswith("refs/"):
                ref_infos = list(exp_refs_by_name(self, rev))
                if len(ref_infos) == 1:
                    return self.get_ref(str(ref_infos[0]))
                if len(ref_infos) > 1:
                    raise RevError(f"ambiguous Git revision '{rev}'")
            raise
コード例 #2
0
ファイル: scm.py プロジェクト: rgvanwesep/dvc
def resolve_rev(scm: "Git", rev: str) -> str:
    from scmrepo.exceptions import RevError as InternalRevError

    try:
        return scm.resolve_rev(rev)
    except InternalRevError as exc:
        # `scm` will only resolve git branch and tag names,
        # if rev is not a sha it may be an abbreviated experiment name
        if not scm.is_sha(rev) and not rev.startswith("refs/"):
            from dvc.repo.experiments.utils import exp_refs_by_name

            ref_infos = list(exp_refs_by_name(scm, rev))
            if len(ref_infos) == 1:
                return scm.get_ref(str(ref_infos[0]))
            if len(ref_infos) > 1:
                raise RevError(f"ambiguous Git revision '{rev}'")
        raise RevError(str(exc))