views:

149

answers:

1

I typically setup SVN to host 1 big project per repository but a lot of our infrastructure has changed and we now have one main SVN server that has a hierarchy like so

  • Branches
  • Tags
  • Trunk
    • Project1
      • files & folders
    • Project2
      • files & folders
    • Project3
      • files & folders

Projects1,2, and 3 do not share anything amongst themselves, they are independent projects each with their own solution file to be built.

I can setup projects in Hudson like so

And that will maintain a separate workspace for each project, but every time you commit to Project 2 or Project 3, a build gets kicked off in Hudson for every project based in that repository. Also, any commit made anywhere in the repository is pulled down and inserted into the Hudson changelog for all of them.

I know the easiest solution would be to simply separate every project into its own repository. However, if I couldn't do that due to various reasons, is there a feasible way to achieve the functionality that having separate repositories gets me?

I want commits to the sub folder of project 1 to only affect project 1. No other project's commits should cause project 1 to build and project 1's changelog in Hudson should only have commit notes from project 1.

+3  A: 

Have you tried:

(job#1)
Repository Url: http://server/svn/MainRepository/Trunk/Project1
Local module directory (optional):

(job#2)
Repository Url: http://server/svn/MainRepository/Trunk/Project2
Local module directory (optional):

(job#3)
Repository Url: http://server/svn/MainRepository/Trunk/Project3
Local module directory (optional):

Leave the Local module directory blank. (You could fill it out, but not necessary)

William Leara
i'll try it and get back to you
Allen
That will work, it's the setup we use at my shop.
gareth_bowles
Yep that worked... Before I asked the question, I had set up a small experiment just as you described above and it wasn't working. After your answer I went ahead and wiped everything out and started from scratch, setting it up just like you described. Now, its working just fine!
Allen