summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py27
-rw-r--r--bitbake/lib/bb/fetch2/bzr.py4
-rw-r--r--bitbake/lib/bb/fetch2/svn.py4
3 files changed, 14 insertions, 21 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index 9029a5a83c..6443303ca2 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -619,7 +619,10 @@ def get_srcrev(d):
619 raise FetchError("SRCREV was used yet no valid SCM was found in SRC_URI") 619 raise FetchError("SRCREV was used yet no valid SCM was found in SRC_URI")
620 620
621 if len(scms) == 1 and len(urldata[scms[0]].names) == 1: 621 if len(scms) == 1 and len(urldata[scms[0]].names) == 1:
622 return urldata[scms[0]].method.sortable_revision(scms[0], urldata[scms[0]], d, urldata[scms[0]].names[0]) 622 autoinc, rev = urldata[scms[0]].method.sortable_revision(scms[0], urldata[scms[0]], d, urldata[scms[0]].names[0])
623 if autoinc:
624 return "AUTOINC+" + rev
625 return rev
623 626
624 # 627 #
625 # Mutiple SCMs are in SRC_URI so we resort to SRCREV_FORMAT 628 # Mutiple SCMs are in SRC_URI so we resort to SRCREV_FORMAT
@@ -628,18 +631,14 @@ def get_srcrev(d):
628 if not format: 631 if not format:
629 raise FetchError("The SRCREV_FORMAT variable must be set when multiple SCMs are used.") 632 raise FetchError("The SRCREV_FORMAT variable must be set when multiple SCMs are used.")
630 633
631 autoinc = False 634 seenautoinc = False
632 autoinc_templ = 'AUTOINC+'
633 for scm in scms: 635 for scm in scms:
634 ud = urldata[scm] 636 ud = urldata[scm]
635 for name in ud.names: 637 for name in ud.names:
636 rev = ud.method.sortable_revision(scm, ud, d, name) 638 autoinc, rev = ud.method.sortable_revision(scm, ud, d, name)
637 if rev.startswith(autoinc_templ): 639 if autoinc and not seenautoinc:
638 if not autoinc: 640 rev = "AUTOINC+" + rev
639 autoinc = True 641 seenautoinc
640 format = "%s%s" % (autoinc_templ, format)
641 rev = rev[len(autoinc_templ):]
642
643 format = format.replace(name, rev) 642 format = format.replace(name, rev)
644 643
645 return format 644 return format
@@ -1277,14 +1276,8 @@ class FetchMethod(object):
1277 return rev 1276 return rev
1278 1277
1279 def sortable_revision(self, url, ud, d, name): 1278 def sortable_revision(self, url, ud, d, name):
1280 """
1281
1282 """
1283 if hasattr(self, "_sortable_revision"):
1284 return self._sortable_revision(url, ud, d)
1285
1286 latest_rev = self._build_revision(url, ud, d, name) 1279 latest_rev = self._build_revision(url, ud, d, name)
1287 return 'AUTOINC+%s' % str(latest_rev) 1280 return True, str(latest_rev)
1288 1281
1289 def generate_revision_key(self, url, ud, d, name): 1282 def generate_revision_key(self, url, ud, d, name):
1290 key = self._revision_key(url, ud, d, name) 1283 key = self._revision_key(url, ud, d, name)
diff --git a/bitbake/lib/bb/fetch2/bzr.py b/bitbake/lib/bb/fetch2/bzr.py
index 58e80c81f6..5d9e5f907c 100644
--- a/bitbake/lib/bb/fetch2/bzr.py
+++ b/bitbake/lib/bb/fetch2/bzr.py
@@ -132,12 +132,12 @@ class Bzr(FetchMethod):
132 132
133 return output.strip() 133 return output.strip()
134 134
135 def _sortable_revision(self, url, ud, d): 135 def sortable_revision(self, url, ud, d, name):
136 """ 136 """
137 Return a sortable revision number which in our case is the revision number 137 Return a sortable revision number which in our case is the revision number
138 """ 138 """
139 139
140 return self._build_revision(url, ud, d) 140 return False, self._build_revision(url, ud, d)
141 141
142 def _build_revision(self, url, ud, d): 142 def _build_revision(self, url, ud, d):
143 return ud.revision 143 return ud.revision
diff --git a/bitbake/lib/bb/fetch2/svn.py b/bitbake/lib/bb/fetch2/svn.py
index cbf929e9c5..9a779d2448 100644
--- a/bitbake/lib/bb/fetch2/svn.py
+++ b/bitbake/lib/bb/fetch2/svn.py
@@ -178,12 +178,12 @@ class Svn(FetchMethod):
178 178
179 return revision 179 return revision
180 180
181 def _sortable_revision(self, url, ud, d): 181 def sortable_revision(self, url, ud, d, name):
182 """ 182 """
183 Return a sortable revision number which in our case is the revision number 183 Return a sortable revision number which in our case is the revision number
184 """ 184 """
185 185
186 return self._build_revision(url, ud, d) 186 return False, self._build_revision(url, ud, d)
187 187
188 def _build_revision(self, url, ud, d): 188 def _build_revision(self, url, ud, d):
189 return ud.revision 189 return ud.revision