diff options
Diffstat (limited to 'bitbake/lib/bb/fetch2/git.py')
| -rw-r--r-- | bitbake/lib/bb/fetch2/git.py | 17 | 
1 files changed, 9 insertions, 8 deletions
| diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py index 6175e4c7c9..99230c170a 100644 --- a/bitbake/lib/bb/fetch2/git.py +++ b/bitbake/lib/bb/fetch2/git.py | |||
| @@ -150,7 +150,7 @@ class Git(FetchMethod): | |||
| 150 | return True | 150 | return True | 
| 151 | os.chdir(ud.clonedir) | 151 | os.chdir(ud.clonedir) | 
| 152 | for name in ud.names: | 152 | for name in ud.names: | 
| 153 | if not self._contains_ref(ud.revisions[name], d): | 153 | if not self._contains_ref(ud.revisions[name], ud.branches[name], d): | 
| 154 | return True | 154 | return True | 
| 155 | if ud.write_tarballs and not os.path.exists(ud.fullmirror): | 155 | if ud.write_tarballs and not os.path.exists(ud.fullmirror): | 
| 156 | return True | 156 | return True | 
| @@ -197,7 +197,7 @@ class Git(FetchMethod): | |||
| 197 | # Update the checkout if needed | 197 | # Update the checkout if needed | 
| 198 | needupdate = False | 198 | needupdate = False | 
| 199 | for name in ud.names: | 199 | for name in ud.names: | 
| 200 | if not self._contains_ref(ud.revisions[name], d): | 200 | if not self._contains_ref(ud.revisions[name], ud.branches[name], d): | 
| 201 | needupdate = True | 201 | needupdate = True | 
| 202 | if needupdate: | 202 | if needupdate: | 
| 203 | try: | 203 | try: | 
| @@ -281,13 +281,14 @@ class Git(FetchMethod): | |||
| 281 | def supports_srcrev(self): | 281 | def supports_srcrev(self): | 
| 282 | return True | 282 | return True | 
| 283 | 283 | ||
| 284 | def _contains_ref(self, tag, d): | 284 | def _contains_ref(self, tag, branch, d): | 
| 285 | basecmd = data.getVar("FETCHCMD_git", d, True) or "git" | 285 | basecmd = data.getVar("FETCHCMD_git", d, True) or "git" | 
| 286 | cmd = "%s log --pretty=oneline -n 1 %s -- 2> /dev/null | wc -l" % (basecmd, tag) | 286 | cmd = "%s merge-base --is-ancestorlog %s %s" % (basecmd, tag, branch) | 
| 287 | output = runfetchcmd(cmd, d, quiet=True) | 287 | try: | 
| 288 | if len(output.split()) > 1: | 288 | output = runfetchcmd(cmd, d, quiet=True) | 
| 289 | raise bb.fetch2.FetchError("The command '%s' gave output with more then 1 line unexpectedly, output: '%s'" % (cmd, output)) | 289 | except bb.fetch2.FetchError: | 
| 290 | return output.split()[0] != "0" | 290 | return False | 
| 291 | return True | ||
| 291 | 292 | ||
| 292 | def _revision_key(self, url, ud, d, name): | 293 | def _revision_key(self, url, ud, d, name): | 
| 293 | """ | 294 | """ | 
