diff options
| -rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 20 | ||||
| -rw-r--r-- | bitbake/lib/bb/tests/fetch.py | 15 |
2 files changed, 29 insertions, 6 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index f4cff03225..8b6c3eed6c 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py | |||
| @@ -867,12 +867,6 @@ def srcrev_internal_helper(ud, d, name): | |||
| 867 | c) None if not specified | 867 | c) None if not specified |
| 868 | """ | 868 | """ |
| 869 | 869 | ||
| 870 | if 'rev' in ud.parm: | ||
| 871 | return ud.parm['rev'] | ||
| 872 | |||
| 873 | if 'tag' in ud.parm: | ||
| 874 | return ud.parm['tag'] | ||
| 875 | |||
| 876 | srcrev = None | 870 | srcrev = None |
| 877 | pn = d.getVar("PN", True) | 871 | pn = d.getVar("PN", True) |
| 878 | attempts = [] | 872 | attempts = [] |
| @@ -889,6 +883,20 @@ def srcrev_internal_helper(ud, d, name): | |||
| 889 | if srcrev and srcrev != "INVALID": | 883 | if srcrev and srcrev != "INVALID": |
| 890 | break | 884 | break |
| 891 | 885 | ||
| 886 | if 'rev' in ud.parm and 'tag' in ud.parm: | ||
| 887 | raise FetchError("Please specify a ;rev= parameter or a ;tag= parameter in the url %s but not both." % (ud.url)) | ||
| 888 | |||
| 889 | if 'rev' in ud.parm or 'tag' in ud.parm: | ||
| 890 | if 'rev' in ud.parm: | ||
| 891 | parmrev = ud.parm['rev'] | ||
| 892 | else: | ||
| 893 | parmrev = ud.parm['tag'] | ||
| 894 | if srcrev == "INVALID" or not srcrev: | ||
| 895 | return parmrev | ||
| 896 | if srcrev != parmrev: | ||
| 897 | raise FetchError("Conflicting revisions (%s from SRCREV and %s from the url) found, please spcify one valid value" % (srcrev, parmrev)) | ||
| 898 | return parmrev | ||
| 899 | |||
| 892 | rev = srcrev | 900 | rev = srcrev |
| 893 | if rev == "INVALID" or not rev: | 901 | if rev == "INVALID" or not rev: |
| 894 | var = "SRCREV_pn-%s" % pn | 902 | var = "SRCREV_pn-%s" % pn |
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py index e134a31f12..deb1d3733b 100644 --- a/bitbake/lib/bb/tests/fetch.py +++ b/bitbake/lib/bb/tests/fetch.py | |||
| @@ -382,6 +382,21 @@ class FetcherNetworkTest(FetcherTest): | |||
| 382 | url1 = url2 = "git://git.openembedded.org/bitbake" | 382 | url1 = url2 = "git://git.openembedded.org/bitbake" |
| 383 | self.gitfetcher(url1, url2) | 383 | self.gitfetcher(url1, url2) |
| 384 | 384 | ||
| 385 | def test_gitfetch_goodsrcrev(self): | ||
| 386 | # SRCREV is set but matches rev= parameter | ||
| 387 | url1 = url2 = "git://git.openembedded.org/bitbake;rev=270a05b0b4ba0959fe0624d2a4885d7b70426da5" | ||
| 388 | self.gitfetcher(url1, url2) | ||
| 389 | |||
| 390 | def test_gitfetch_badsrcrev(self): | ||
| 391 | # SRCREV is set but does not match rev= parameter | ||
| 392 | url1 = url2 = "git://git.openembedded.org/bitbake;rev=dead05b0b4ba0959fe0624d2a4885d7b70426da5" | ||
| 393 | self.assertRaises(bb.fetch.FetchError, self.gitfetcher, url1, url2) | ||
| 394 | |||
| 395 | def test_gitfetch_tagandrev(self): | ||
| 396 | # SRCREV is set but does not match rev= parameter | ||
| 397 | url1 = url2 = "git://git.openembedded.org/bitbake;rev=270a05b0b4ba0959fe0624d2a4885d7b70426da5;tag=270a05b0b4ba0959fe0624d2a4885d7b70426da5" | ||
| 398 | self.assertRaises(bb.fetch.FetchError, self.gitfetcher, url1, url2) | ||
| 399 | |||
| 385 | def test_gitfetch_premirror(self): | 400 | def test_gitfetch_premirror(self): |
| 386 | url1 = "git://git.openembedded.org/bitbake" | 401 | url1 = "git://git.openembedded.org/bitbake" |
| 387 | url2 = "git://someserver.org/bitbake" | 402 | url2 = "git://someserver.org/bitbake" |
