[Buildbot-devel] [PATCH] SVN branches

Chris H apchsf at yahoo.com
Tue Aug 22 19:50:33 UTC 2006


This patch includes three changes to the SVN build
step
   
  1) Allow the user to specify a sub-directory of a
branch.  Previously when using branches there was no
way to checkout a sub-directory of the branch.
   
  2) Add peg revision to svnurl.  see 
http://svnbook.red-bean.com/nightly/en/svn.advanced.pegrevs.html
   
  3) Show the branch name instead of just "[branch]"
in the status description of the step 
   
  Regards,
        Chris

===================================================================
RCS file:
/cvsroot/buildbot/buildbot/buildbot/process/step.py,v
retrieving revision 1.99
diff -u -r1.99 step.py
--- buildbot/process/step.py	21 Aug 2006 00:43:20
-0000	1.99
+++ buildbot/process/step.py	22 Aug 2006 18:56:49
-0000
@@ -1618,7 +1618,7 @@
     name = 'svn'
 
     def __init__(self, svnurl=None, baseURL=None,
defaultBranch=None,
-                 directory=None, **kwargs):
+                 directory=None, svndir=None,
**kwargs):
         """
         @type  svnurl: string
         @param svnurl: the URL which points to the
Subversion server,
@@ -1639,6 +1639,13 @@
                               explicitly. It will
simply be appended
                               to C{baseURL} and the
result handed to
                               the SVN command.
+                              
+         @param svndir: if branches are enabled, this
is the directory
+                        to append to the URL after
C{baseURL} and the branch
+                        have been appended.  You can
use this to check out a
+                        subdirectory of the
repository.  It should start with
+                        a slash.
+
         """
 
         if not kwargs.has_key('workdir') and
directory is not None:
@@ -1650,6 +1657,8 @@
         self.svnurl = svnurl
         self.baseURL = baseURL
         self.branch = defaultBranch
+        self.svndir = svndir
+
 
         Source.__init__(self, **kwargs)
 
@@ -1719,12 +1728,19 @@
             self.args['svnurl'] = self.svnurl
         else:
             self.args['svnurl'] = self.baseURL +
branch
+            if self.svndir is not None:
+                self.args['svnurl'] =
self.args['svnurl'] + self.svndir
+
+        if revision is not None and revision !=
"HEAD":
+            self.args['svnurl'] = self.args['svnurl']
+ "@" + revision
+
+
         self.args['revision'] = revision
         self.args['patch'] = patch
 
         revstuff = []
         if branch is not None and branch !=
self.branch:
-            revstuff.append("[branch]")
+             revstuff.append("[%s]" % branch)
         if revision is not None:
             revstuff.append("r%s" % revision)
         self.description.extend(revstuff)



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 




More information about the devel mailing list