diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-01-20 13:15:12 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-01-20 15:15:15 +0000 |
commit | e82a4ab48991035866da9914c8b75a9bfbc9a7fc (patch) | |
tree | f68aeb12794b4c78782dde8b4055d648eed8053d /lib/bb/fetch2/__init__.py | |
parent | 86ef4e65ce18b71dc69643586bd2aa8f48703171 (diff) | |
download | openembedded-core-contrib-e82a4ab48991035866da9914c8b75a9bfbc9a7fc.tar.gz |
fetch2: Sanity check SRCREV matches rev/tag parameter
Add a sanity check so that if some SRCREV is set and a rev parameter is given
to the url, the revision given should match.
Any tag parameter behaves the same as rev. If both are specified, error to
tell the user we're confused rather than do something which may or may not
be what they intended.
Also add some unittests for this.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/fetch2/__init__.py')
-rw-r--r-- | lib/bb/fetch2/__init__.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py index f4cff03225..8b6c3eed6c 100644 --- a/lib/bb/fetch2/__init__.py +++ b/lib/bb/fetch2/__init__.py @@ -867,12 +867,6 @@ def srcrev_internal_helper(ud, d, name): c) None if not specified """ - if 'rev' in ud.parm: - return ud.parm['rev'] - - if 'tag' in ud.parm: - return ud.parm['tag'] - srcrev = None pn = d.getVar("PN", True) attempts = [] @@ -889,6 +883,20 @@ def srcrev_internal_helper(ud, d, name): if srcrev and srcrev != "INVALID": break + if 'rev' in ud.parm and 'tag' in ud.parm: + raise FetchError("Please specify a ;rev= parameter or a ;tag= parameter in the url %s but not both." % (ud.url)) + + if 'rev' in ud.parm or 'tag' in ud.parm: + if 'rev' in ud.parm: + parmrev = ud.parm['rev'] + else: + parmrev = ud.parm['tag'] + if srcrev == "INVALID" or not srcrev: + return parmrev + if srcrev != parmrev: + raise FetchError("Conflicting revisions (%s from SRCREV and %s from the url) found, please spcify one valid value" % (srcrev, parmrev)) + return parmrev + rev = srcrev if rev == "INVALID" or not rev: var = "SRCREV_pn-%s" % pn |