2

We use TortoiseSVN GUI for our day-to-day revision control activities.

I'm trying to set up CruiseControl.Net, connecting to a SVN repository on a Linux machine. What a nightmare! It was, shall we say, "challenging" to get svn command-line on Windows to connect to the SVN Linux server. That is all working now, yay. From my Windows command prompt I can type

svn co svn+ssh://user@server/repos/QTSS 

and it copies the QTSS repository to my Windows machine. So using the 'svn co' command above I did a full checkout to the place I'm going to use as the working folder for CCNet: C:\users\build\repos\QTSS

Underneath the repos/QTSS/trunk folder we have many subfolders, each with its own VS2010 solution source files. To get going with CCNet, I configured a CCNet project for one of these subfolders, named SparsePointSurface; eventually I'll have a CCNet project for each subfolder. When CCNet runs, it gives the error:

Source control operation failed: svn: E155000: 'C:\Users\build\repos\QTSS\trunk\SparsePointSurface' is already a working copy for a different URL

In a Windows command prompt window, I cd to that folder and type in

svn checkout svn+ssh://user@server/repos/QTSS/trunk/ C:\Users\build\repos\QTSS\trunk\SparsePointSurface --no-auth-cache --non-interactive

which is the same command that CCNet is issuing. Sure enough, I get the same error at the command prompt as what occurs in CCNet. So it's an issue with SVN, not CCNet.

What exactly does this SVN error mean, and how do I fix it? Despite much googling, I haven't found a good explanation of this error's cause and resolution. Mostly what turns up are issues with svn switch/merge operations, but that's not what I'm trying to do.

Note that in TortoiseSVN GUI, I can right-click on SparsePointSurface in File Explorer, select "SVN Checkout" and it works fine.

ngrashia
  • 9,869
  • 5
  • 43
  • 58
TJH
  • 97
  • 1
  • 2
  • 10
  • dupe: http://stackoverflow.com/questions/933390/try-to-svn-checkout-but-get-svn-is-already-a-working-copy-for-a-different – Daedalus Mar 24 '13 at 22:05
  • I don't think this is a dupe, as it looks like there are multiple checkouts in folders already owned by SVN, which will cause svn to throw a legit wobbly. – Chris Henry Mar 24 '13 at 22:35

2 Answers2

1

OK I finally found the solution. In my ccnet.config I had the project , the svn control block , and the msbuild task all pointing to 'C:\Users\build\repos\QTSS\trunk\SparsePointSurface'. I changed with WD for the project and the svn control block to 'C:\Users\build\repos\QTSS\trunk\', which is where the .svn folder is located. I left the WD of the msbuild task to the specific location of the .sln file. Finally got a successful build under CCNet. Woot! Thanks Chris Henry; your comments sent me down the road to the fix.

TJH
  • 97
  • 1
  • 2
  • 10
0

Any reason why you're checking out each time?

That error typically means that you're attempting to checkout an SVN repo into a folder that already appears to be under SVN control. You can tell a folder is under SVN control by looking for the .svn folder, at least in earlier versions of SVN.

It seems to me like you should be doing an update within Cruise Control, not a complete checkout. Optionally, you can do a full checkout each time, but you'll need to remove all the files currently in place.

Chris Henry
  • 11,914
  • 3
  • 30
  • 31
  • ... Or, each CCNet project checks out to its own folder. I'd prefer that sort of separation. – Sameer Singh Mar 25 '13 at 11:24
  • I'm not specifically doing a checkout. My CCNet svn source control block is very simple, containing only , , and tags. I manually fudged my SparsePointSurface folder to force CCNet to have to checkout a file and perform a build. The CCNet debug trace indicates it's doing a svn log command which detects modifications, then CCNet issues the svn checkout. – TJH Mar 25 '13 at 15:13
  • The .svn folder is in the QTSS folder. I just don't have a good understanding of why SVN gives the error. I'm in a subfolder of my repository, and am telling SVN to do the checkout of the corresponding folder on the server. The fact that this operation works fine when using TortoiseSVN GUI confuses me even more. – TJH Mar 25 '13 at 15:19