[users at bb.net] SVN checkout minimize bandwidth

Paulo Matos pmatos at linki.tools
Tue Sep 27 09:29:27 UTC 2016



On 27/09/16 09:39, Ryan Schmidt wrote:
> I'm not familiar enough with Buildbot to be able to suggest a specific way to accomplish the switch. But I know Subversion very well, and that "svn switch" is the intended solution to the problem of wanting to work on different branches while only keeping a single working copy on disk.
> 
> This may create some additional complications. Depending on how your branches differ from one another, there might be situations where switching from one branch to another does not leave your working copy in a clean state. Make sure you check the status code of "svn switch" to ensure it didn't have an error, and I'd probably also run "svn status --ignore-externals" on the working copy afterward, to make sure there are no modified or unversioned files present before building.
> 

Thanks, it seems I have hit a common problem:
http://trac.buildbot.net/ticket/97

Funny thing though is that if I do (consider gcc as the project in
question - good example as repo is massive!):
c['change_source'].append(SVNPoller(
    svnurl = 'svn://gcc.gnu.org/svn/gcc',
    project='gcc',
    pollAtLaunch = True,
    split_file = util.svn.split_file_branches,
    pollinterval = 60 * 3))

class CloneOrUpdateGCCRepo (SVN):

    name = "update gcc repo"
    description = r"fetching GCC sources"
    descriptionDone = r"fetched GCC sources"
    def __init__ (self):
        SVN.__init__ (self,
                      repourl = 'svn://gcc.gnu.org/svn/gcc/',
                      workdir = WithProperties (r"%s/../gcc/", r'builddir'),
                      mode = r'incremental', method='fresh')
        self.haltOnFailure = True

...

self.addStep (CloneOrUpdateGCCRepo ())


This does not actually checkout the right branch. I was expecting trunk
or branches/gcc-4_9-release to be checked out, since I have a special
AnyBranchScheduler with a custom branch_fn function but instead the
whole of svn://gcc.gnu.org/svn/gcc/ is checked out every time.

-- 
Paulo Matos


More information about the users mailing list