[Checkins] SVN: gocept.bsquare/branches/adamg-bpf-layout/ trying to add BRANCHNAME/PROJECT/FILEPATH repositories

Adam Groszer agroszer at gmail.com
Wed Sep 2 10:17:30 EDT 2009


Log message for revision 103484:
  trying to add BRANCHNAME/PROJECT/FILEPATH repositories

Changed:
  U   gocept.bsquare/branches/adamg-bpf-layout/src/gocept/bsquare/master.py
  U   gocept.bsquare/branches/adamg-bpf-layout/update-config.py

-=-
Modified: gocept.bsquare/branches/adamg-bpf-layout/src/gocept/bsquare/master.py
===================================================================
--- gocept.bsquare/branches/adamg-bpf-layout/src/gocept/bsquare/master.py	2009-09-02 14:13:51 UTC (rev 103483)
+++ gocept.bsquare/branches/adamg-bpf-layout/src/gocept/bsquare/master.py	2009-09-02 14:17:30 UTC (rev 103484)
@@ -20,7 +20,8 @@
 
 is_win32 = sys.platform == 'win32'
 
-def split_file(path):
+def split_file_pbf(path):
+    #PROJECT/BRANCHNAME/FILEPATH repositories
     pieces = path.split("/")
     if len(pieces) < 2:
         return None
@@ -30,9 +31,37 @@
     return ("%s/%s" % (project, branch), "/".join(pieces[2:]))
 
 
+def split_file_bpf(path):
+    #BRANCHNAME/PROJECT/FILEPATH repositories
+    pieces = path.split("/")
+    if len(pieces) < 2:
+        return None
+    project, branch = pieces[1], pieces[0]
+    if branch != "trunk":
+        return None
+    return ("%s/%s" % (project, branch), "/".join(pieces[2:]))
+
+def split_file_i(path):
+    #intelligent
+    log.msg("split_file_i: %s" % path)
+    pieces = path.split("/")
+    if len(pieces) < 2:
+        return None
+    project, branch = pieces[0], pieces[1]
+    #if project in ('trunk','branches','tags'):
+        #this is a BPF
+        #project, branch = branch, project
+    #if branch != "trunk":
+        #return None
+    rv = ("%s/%s" % (project, branch), "/".join(pieces[2:]))
+    log.msg("split_file_i: %s" % repr(rv))
+    return rv
+
+
 def make_factory(svn_url, passOnNoTest=True):
     f = BuildFactory()
-    f.addStep(SVN(baseURL=svn_url, mode='clobber'))
+    log.msg("make_factory svn_url: %s" % svn_url)
+    f.addStep(SVN(baseURL=svn_url, mode='clobber',defaultBranch=''))
     f.addStep(Compile(name='bootstrap',
                 command='buildout bootstrap .',
                 description=['bootstrapping'],
@@ -109,7 +138,7 @@
     c['slavePortnum'] = 8989
     if poller is None:
         c['change_source'] = SVNPoller(svn_url,
-                                       split_file=split_file,
+                                       split_file=split_file_i,
                                        svnuser=svnuser,
                                        svnpasswd=svnpasswd,
                                        pollinterval=pollinterval,
@@ -125,6 +154,15 @@
     projects = [x.strip() for x in projects]
 
     for project in projects:
+        realsvn_url = svn_url
+        if '/' in project:
+            parts = project.split('/')
+            realsvn_url = svn_url+project+'/'
+            project = parts[-1]
+            branch = "trunk/%s" % project
+        else:
+            branch = "%s/trunk" % project
+
         if isinstance(make_factory, dict):
             f = makefactory.get(project,
                                 makefactory.get('__default__', make_factory))
@@ -141,11 +179,11 @@
         del f
 
         c['schedulers'].append(Scheduler(
-            project, "%s/trunk" % project, pollinterval+10, [project]))
+            project, branch, pollinterval+10, [project]))
         if nightlyhour is not None:
             c['schedulers'].append(Nightly(
                 "%s nightly" % project, [project], hour=[nightlyhour],
-                branch="%s/trunk" % project))
+                branch=branch))
 
     # Status display(s)
     c['status'] = []

Modified: gocept.bsquare/branches/adamg-bpf-layout/update-config.py
===================================================================
--- gocept.bsquare/branches/adamg-bpf-layout/update-config.py	2009-09-02 14:13:51 UTC (rev 103483)
+++ gocept.bsquare/branches/adamg-bpf-layout/update-config.py	2009-09-02 14:17:30 UTC (rev 103484)
@@ -21,16 +21,14 @@
 import subprocess
 
 SVNBIN = 'svn'
-#SSL certificate you still need to accept by 'hand'
 #usually authentication will be cached by svn, in case not fill in below
-SVNUSER = ''
-SVNPASS = ''
+SVNUSER = 'buildbot'
+SVNPASS = 'tHe6a9Uq'
 
 is_win32 = sys.platform == 'win32'
 
 def system(command, input=''):
-    #enable for debugging
-    #print command
+    print command
 
     p = subprocess.Popen(command,
                          shell=True,
@@ -75,7 +73,7 @@
     else:
         svnpass = ''
 
-    return system("svn ls --non-interactive %s%s%s" % (url, svnuser, svnpass))
+    return system("svn --non-interactive ls %s%s%s" % (url, svnuser, svnpass))
 
 def main():
     if len(sys.argv) < 3:
@@ -84,6 +82,8 @@
 
     home = sys.argv[1]
     base = sys.argv[2]
+    if not base.endswith('/'):
+        base += '/'
 
     projects = svnls(base)
     cleaned = []
@@ -91,8 +91,21 @@
         if project.endswith('/'):
             project = project[:-1]
 
+        if project == 'trunk':
+            subprojects = svnls(base+'trunk')
+            for subproject in subprojects.splitlines():
+                if subproject.endswith('/'):
+                    subproject = subproject[:-1]
+
+                try:
+                    svnls("%strunk/%s/buildout.cfg" % (base, subproject))
+                    cleaned.append("trunk/"+subproject)
+                except OSError:
+                    pass
+
+
         try:
-            svnls("%s/%s/trunk/buildout.cfg" % (base, project))
+            svnls("%s%s/trunk/buildout.cfg" % (base, project))
             cleaned.append(project)
         except OSError:
             pass



More information about the checkins mailing list