diff options
author | Pedro Alvarez <pedro.alvarez@codethink.co.uk> | 2016-03-26 18:59:01 +0000 |
---|---|---|
committer | Pedro Alvarez <pedro.alvarez@codethink.co.uk> | 2016-03-26 19:27:19 +0000 |
commit | 45e39e81698df91251c7fac5a642e211e98d834b (patch) | |
tree | f4d2fa2774dd29f302617002bd8da417928a1408 /morphlib/repocache.py | |
parent | 9404317020ff0455cbfd3ca7976d546af823759b (diff) | |
download | morph-45e39e81698df91251c7fac5a642e211e98d834b.tar.gz |
Add support for definitions version 8baserock/pedroalvarez/defv8-submodules-squashed
This code is a rework from changes done by:
- Tiago Gomes <tiago.gomes@codethink.co.uk>
https://storyboard.baserock.org/#!/story/86
Change-Id: I3475c2bcb648a272fee33bc878a521f79d4e6581
Diffstat (limited to 'morphlib/repocache.py')
-rw-r--r-- | morphlib/repocache.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/morphlib/repocache.py b/morphlib/repocache.py index f6978ec4..941d958a 100644 --- a/morphlib/repocache.py +++ b/morphlib/repocache.py @@ -369,7 +369,7 @@ class RepoCache(object): return self._get_repo(repo_name) def ensure_submodules(self, toplevel_repo, - toplevel_ref): # pragma: no cover + toplevel_ref, submodules={}): # pragma: no cover '''Ensure any submodules of a given repo are cached and up to date.''' def submodules_for_repo(repo_path, ref): @@ -377,7 +377,8 @@ class RepoCache(object): submodules = morphlib.git.Submodules(repo_path, ref, runcmd_cb=self.runcmd_cb) submodules.load() - return [(submod.url, submod.commit) for submod in submodules] + return [(submod.name, submod.url, submod.commit) + for submod in submodules] except morphlib.git.NoModulesFileError: return [] @@ -385,8 +386,10 @@ class RepoCache(object): subs_to_process = submodules_for_repo(toplevel_repo.dirname, toplevel_ref) while subs_to_process: - url, ref = subs_to_process.pop() + name, url, ref = subs_to_process.pop() done.add((url, ref)) + if name in submodules: + url = submodules[name]['url'] cached_repo = self.get_updated_repo(url, ref=ref) |