[Treepkg-commits] r194 - trunk/recipes/kde_enterprise_4
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Wed May 6 15:52:26 CEST 2009
Author: bh
Date: 2009-05-06 15:52:26 +0200 (Wed, 06 May 2009)
New Revision: 194
Modified:
trunk/recipes/kde_enterprise_4/base.py
Log:
Improve handling of nested subdirectories of tags in the enterprise4 tag
detector. This is necessary for the kdebase_runtime and
kdebase_workspace packages
Modified: trunk/recipes/kde_enterprise_4/base.py
===================================================================
--- trunk/recipes/kde_enterprise_4/base.py 2009-04-30 10:30:04 UTC (rev 193)
+++ trunk/recipes/kde_enterprise_4/base.py 2009-05-06 13:52:26 UTC (rev 194)
@@ -27,6 +27,25 @@
consider in the tag directory specified by the url
subdir -- A subdirectory of the directory matched by pattern to
export and use to determine revision number
+
+ The subdir parameter is there to cope with the kdepim enterprise
+ tags. The URL for a tag is of the form
+ .../tags/kdepim/enterprise4.0.<date>.<rev> . Each such tag has
+ subdirectories for kdepim, kdelibs, etc. The url and pattern are
+ used to match the URL for the tag, and the subdir is used to select
+ which part of the tag is meant.
+
+ The subdir also determines which SVN directory's revision number is
+ used. Normally, just appending the subdir to the tag URL would be
+ enough for this, but the situation is more complex for
+ kdebase_workspace and kdebase_runtime, whose code comes from
+ different subdirectories of the kdebase-4.X-branch subdirectory (for
+ enterprise4 tags). Here the revision number must be taken from
+ kdebase-4.X-branch, but the URL to use when exporting the sources,
+ must refer to e.g. kdebase-4.1-branch/kdebase_workspace. To achieve
+ that, subdir may contain slashes to indicate subdirectories of
+ subdirectories, but only the first part of subdir (up to the first
+ slash) is used when determining the revision number.
"""
def __init__(self, url, pattern, subdir):
@@ -47,19 +66,22 @@
If no tag can be found, the method returns the tuple (None, None).
"""
candidates = self.list_tags()
+ urlrev = (None, None)
if candidates:
newest = candidates[-1]
- subdir = self.subdir
- if not subdir.endswith("/"):
- subdir += "/"
- tag_url = self.url + "/" + newest
- tag_subdirs = treepkg.subversion.list_url(tag_url)
- if subdir in tag_subdirs:
- subdir_url = tag_url + "/" + subdir
- revision = treepkg.subversion.last_changed_revision(subdir_url)
- return subdir_url, revision
- return None, None
+ urlrev = self.determine_revision(self.url + "/" + newest,
+ self.subdir)
+ return urlrev
+ def determine_revision(self, baseurl, subdir):
+ urlrev = (None, None)
+ revision_url = baseurl + "/" + subdir.split("/")[0]
+ try:
+ revision = treepkg.subversion.last_changed_revision(revision_url)
+ urlrev = (baseurl + "/" + subdir, revision)
+ except treepkg.subversion.SubversionError:
+ pass
+ return urlrev
class BaseSourcePackager(treepkg.packager.SourcePackager):
More information about the Treepkg-commits
mailing list