git_command: unify soft/hard versions with requirements.json

Use the requirements logic in the wrapper to load versions out of the
requirements.json file to avoid duplicating them in git_command.py.

Change-Id: Ib479049fc54ebc6f52c2c30d1315cf1734ff1990
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/415617
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
Commit-Queue: Mike Frysinger <vapier@google.com>
Tested-by: Mike Frysinger <vapier@google.com>
This commit is contained in:
Mike Frysinger
2024-03-21 12:58:01 -04:00
committed by LUCI
parent 73356f1d5c
commit 4406642e20
4 changed files with 19 additions and 25 deletions

13
repo
View File

@ -210,7 +210,6 @@ GIT = "git" # our git command
# NB: The version of git that the repo launcher requires may be much older than
# the version of git that the main repo source tree requires. Keeping this at
# an older version also makes it easier for users to upgrade/rollback as needed.
# See requirements.json for versions.
MIN_GIT_VERSION = (1, 7, 9) # minimum supported git version
repodir = ".repo" # name of repo's private directory
S_repo = "repo" # special repo repository
@ -1237,13 +1236,13 @@ class Requirements:
return cls(json_data)
def _get_soft_ver(self, pkg):
def get_soft_ver(self, pkg):
"""Return the soft version for |pkg| if it exists."""
return self.requirements.get(pkg, {}).get("soft", ())
return tuple(self.requirements.get(pkg, {}).get("soft", ()))
def _get_hard_ver(self, pkg):
def get_hard_ver(self, pkg):
"""Return the hard version for |pkg| if it exists."""
return self.requirements.get(pkg, {}).get("hard", ())
return tuple(self.requirements.get(pkg, {}).get("hard", ()))
@staticmethod
def _format_ver(ver):
@ -1253,8 +1252,8 @@ class Requirements:
def assert_ver(self, pkg, curr_ver):
"""Verify |pkg|'s |curr_ver| is new enough."""
curr_ver = tuple(curr_ver)
soft_ver = tuple(self._get_soft_ver(pkg))
hard_ver = tuple(self._get_hard_ver(pkg))
soft_ver = tuple(self.get_soft_ver(pkg))
hard_ver = tuple(self.get_hard_ver(pkg))
if curr_ver < hard_ver:
print(
f'repo: error: Your version of "{pkg}" '