views:

198

answers:

2

We're using Hudson on an SVN repository that hosts a number of projects. One of these projects takes a long time to build, even if no files were changed. Right now Hudson's "Poll SVN" detects that the subversion repository has changed and will try to build the project, even if that change was in a different project.

Is there a way to set up "Poll SCM" to only respond to changes in a certain branch?

A: 

How do you configure the Repository URL of the project (http://subversion.server/svn/project/trunk) or is it the main path of your repository (http://subversion.server/svn)?

If your Project consists of different modules that are spread out across the repository, you need to configure every location individually by adding more SVN locations.

Peter Schuetze
It is set to the trunk, but that trunk consists of a number of related applications. Most applications build in a short timespan, but one of the projects takes a really long time. Moving it elsewhere is not an option, as the other projects depend on it.
Koert
So just build that one project. 'http://subversion.server/svn/trunk/Long_Project'
Peter Schuetze
@Peter: I believe he wants to build everything BUT Long_Project
dhackner
You said that the other projects depend on the long one. If the long project doesn't depend on the small projects, than have 2 jobs, 1 for the long project and 1 for all other ones. If the job with the small projects gets triggered because of a code change in the long one it isn't a problem, since they all depend on the long one. The long one gets build when it needs to be build, because it is only triggered if there is a code change. If you need more help, then please specify what programming language you use, what the dependencies are, if you use maven or not.... In essence, way more detail.
Peter Schuetze
A: 

If your repository looks like this:

svn://svn-server/repo/trunk/project-one/
svn://svn-server/repo/trunk/project-two/
svn://svn-server/repo/trunk/very-big-project/
svn://svn-server/repo/branches/project-one/
svn://svn-server/repo/tags/
(etc.)

Then set Hudson up like this:

Repository URL: svn://svn-server/repo/trunk/very-big-project

If the projects are independent (and don't need to be branched and tagged together) it might make more sense to have separate trunks for each project:

svn://svn-server/repo/project-one/trunk/
svn://svn-server/repo/project-one/branches/
svn://svn-server/repo/project-one/tags/
svn://svn-server/repo/project-two/trunk/
svn://svn-server/repo/project-two/branches/
(etc.)

Then Hudson would be

Repository URL: svn://svn-server/repo/very-big-project/trunk

Bennett McElwee