diff options
-rw-r--r-- | bitbake/lib/bb/fetch2/git.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py index f7c26b36cc..9ca24428a1 100644 --- a/bitbake/lib/bb/fetch2/git.py +++ b/bitbake/lib/bb/fetch2/git.py | |||
@@ -317,22 +317,30 @@ class Git(FetchMethod): | |||
317 | """ | 317 | """ |
318 | return "git:" + ud.host + ud.path.replace('/', '.') + ud.unresolvedrev[name] | 318 | return "git:" + ud.host + ud.path.replace('/', '.') + ud.unresolvedrev[name] |
319 | 319 | ||
320 | def _latest_revision(self, ud, d, name): | 320 | def _lsremote(self, ud, d, search): |
321 | """ | 321 | """ |
322 | Compute the HEAD revision for the url | 322 | Run git ls-remote with the specified search string |
323 | """ | 323 | """ |
324 | if ud.user: | 324 | if ud.user: |
325 | username = ud.user + '@' | 325 | username = ud.user + '@' |
326 | else: | 326 | else: |
327 | username = "" | 327 | username = "" |
328 | 328 | ||
329 | cmd = "%s ls-remote %s://%s%s%s refs/heads/%s refs/tags/%s^{}" % \ | 329 | cmd = "%s ls-remote %s://%s%s%s %s" % \ |
330 | (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.unresolvedrev[name], ud.unresolvedrev[name]) | 330 | (ud.basecmd, ud.proto, username, ud.host, ud.path, search) |
331 | if ud.proto.lower() != 'file': | 331 | if ud.proto.lower() != 'file': |
332 | bb.fetch2.check_network_access(d, cmd) | 332 | bb.fetch2.check_network_access(d, cmd) |
333 | output = runfetchcmd(cmd, d, True) | 333 | output = runfetchcmd(cmd, d, True) |
334 | if not output: | 334 | if not output: |
335 | raise bb.fetch2.FetchError("The command %s gave empty output unexpectedly" % cmd, ud.url) | 335 | raise bb.fetch2.FetchError("The command %s gave empty output unexpectedly" % cmd, ud.url) |
336 | return output | ||
337 | |||
338 | def _latest_revision(self, ud, d, name): | ||
339 | """ | ||
340 | Compute the HEAD revision for the url | ||
341 | """ | ||
342 | search = "refs/heads/%s refs/tags/%s^{}" % (ud.unresolvedrev[name], ud.unresolvedrev[name]) | ||
343 | output = self._lsremote(ud, d, search) | ||
336 | return output.split()[0] | 344 | return output.split()[0] |
337 | 345 | ||
338 | def _build_revision(self, ud, d, name): | 346 | def _build_revision(self, ud, d, name): |