diff options
Diffstat (limited to 'bitbake/lib/bb/fetch2/gitsm.py')
-rw-r--r-- | bitbake/lib/bb/fetch2/gitsm.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/bitbake/lib/bb/fetch2/gitsm.py b/bitbake/lib/bb/fetch2/gitsm.py index b21fed2669..32389130bd 100644 --- a/bitbake/lib/bb/fetch2/gitsm.py +++ b/bitbake/lib/bb/fetch2/gitsm.py | |||
@@ -147,6 +147,23 @@ class GitSM(Git): | |||
147 | 147 | ||
148 | return submodules != [] | 148 | return submodules != [] |
149 | 149 | ||
150 | def need_update(self, ud, d): | ||
151 | if Git.need_update(self, ud, d): | ||
152 | return True | ||
153 | |||
154 | try: | ||
155 | # Check for the nugget dropped by the download operation | ||
156 | known_srcrevs = runfetchcmd("%s config --get-all bitbake.srcrev" % \ | ||
157 | (ud.basecmd), d, workdir=ud.clonedir) | ||
158 | |||
159 | if ud.revisions[ud.names[0]] not in known_srcrevs.split(): | ||
160 | return True | ||
161 | except bb.fetch2.FetchError: | ||
162 | # No srcrev nuggets, so this is new and needs to be updated | ||
163 | return True | ||
164 | |||
165 | return False | ||
166 | |||
150 | def download(self, ud, d): | 167 | def download(self, ud, d): |
151 | def download_submodule(ud, url, module, modpath, d): | 168 | def download_submodule(ud, url, module, modpath, d): |
152 | url += ";bareclone=1;nobranch=1" | 169 | url += ";bareclone=1;nobranch=1" |
@@ -157,6 +174,9 @@ class GitSM(Git): | |||
157 | try: | 174 | try: |
158 | newfetch = Fetch([url], d, cache=False) | 175 | newfetch = Fetch([url], d, cache=False) |
159 | newfetch.download() | 176 | newfetch.download() |
177 | # Drop a nugget to add each of the srcrevs we've fetched (used by need_update) | ||
178 | runfetchcmd("%s config --add bitbake.srcrev %s" % \ | ||
179 | (ud.basecmd, ud.revisions[ud.names[0]]), d, workdir=ud.clonedir) | ||
160 | except Exception as e: | 180 | except Exception as e: |
161 | logger.error('gitsm: submodule download failed: %s %s' % (type(e).__name__, str(e))) | 181 | logger.error('gitsm: submodule download failed: %s %s' % (type(e).__name__, str(e))) |
162 | raise | 182 | raise |