Skip to content

Commit c9617f0

Browse files
david-baylibremakohoek
authored andcommitted
common: handle default element without revision
Checks fail when default revision is set in remote instead of default element. Signed-off-by: David Rozé <[email protected]>
1 parent de36d8d commit c9617f0

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

repo_resource/common.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@ def __init__(self, url, revision='HEAD', name='default.xml',
219219
self.__depth = depth
220220
self.__version: Version = None
221221
self.__remote_url = {}
222+
self.__remote_revision = {}
222223
workdir.mkdir(parents=True, exist_ok=True)
223224

224225
# gitrepo from https://github.com/grouperenault/gitrepo
@@ -243,10 +244,15 @@ def __restore_oldpwd(self):
243244
def __add_remote_url(self, remote, url):
244245
self.__remote_url[remote] = url
245246

247+
def __add_remote_revision(self, remote, rev):
248+
self.__remote_revision[remote] = rev
246249

247250
def __get_remote_url(self, remote):
248251
return self.__remote_url[remote]
249252

253+
def __get_remote_revision(self, remote):
254+
return self.__remote_revision[remote]
255+
250256
def init(self):
251257
self.__change_to_workdir()
252258
try:
@@ -358,17 +364,20 @@ def update_manifest(self, jobs):
358364
xml = ET.parse('.repo/manifests/'+self.__name)
359365
manifest = xml.getroot()
360366

361-
# Get default values from manifest
362-
defaults = manifest.find('default')
363-
if defaults is not None:
364-
defaultRemote = defaults.get('remote')
365-
defaultBranch = defaults.get('revision')
366-
367367
for r in manifest.findall('remote'):
368368
url = r.get('fetch').rstrip('/')
369369
if not re.match("[a-zA-Z]+://", url):
370370
url = re.sub('/[a-z-.]*$', '/', self.__url) + url
371371
self.__add_remote_url(r.get('name'), url)
372+
if (rev := r.get('revision')) is not None:
373+
self.__add_remote_revision(r.get('name'), rev)
374+
375+
# Get default values from manifest
376+
defaults = manifest.find('default')
377+
if defaults is not None:
378+
defaultRemote = defaults.get('remote')
379+
defaultBranch = defaults.get('revision') \
380+
or self.__get_remote_revision(defaultRemote)
372381

373382
for p in manifest.findall('project'):
374383
project = p.get('name')

0 commit comments

Comments
 (0)