我们使用TortoiseSVN GUI进行日常版本控制活动。
我正在尝试设置CruiseControl.Net,连接到Linux机器上的SVN存储库。什么样的恶梦!我们应该说,在Windows上使用svn命令行连接到SVN Linux服务器是“具有挑战性的”。这一切现在都在运作,耶。从我的Windows命令提示符,我可以输入
svn co svn+ssh://user@server/repos/QTSS
并将QTSS存储库复制到我的Windows计算机。因此,使用上面的'svn co'命令,我完全结帐了我将用作CCNet工作文件夹的地方:C:\users\build\repos\QTSS
在repos / QTSS / trunk文件夹下面,我们有许多子文件夹,每个子文件夹都有自己的VS2010解决方案源文件。为了开始使用CCNet,我为其中一个子文件夹配置了一个CCNet项目,名为SparsePointSurface;最终我将为每个子文件夹创建一个CCNet项目。当CCNet运行时,它会给出错误:
Source control operation failed: svn: E155000: 'C:\Users\build\repos\QTSS\trunk\SparsePointSurface' is already a working copy for a different URL
在Windows命令提示符窗口中,我cd到该文件夹并输入
svn checkout svn+ssh://user@server/repos/QTSS/trunk/ C:\Users\build\repos\QTSS\trunk\SparsePointSurface --no-auth-cache --non-interactive
这是CCNet发出的命令。果然,我在命令提示符处得到与CCNet中发生的错误相同的错误。所以这是SVN的一个问题,而不是CCNet。
此SVN错误究竟是什么意思,我该如何解决?尽管有很多谷歌搜索,我还没有找到这个错误的原因和解决方案的一个很好的解释。最常见的是svn切换/合并操作的问题,但这不是我想要做的。
请注意,在TortoiseSVN GUI中,我可以在文件资源管理器中右键单击SparsePointSurface,选择“SVN Checkout”,它可以正常工作。
答案 0 :(得分:1)
好的,我终于找到了解决方案。在我的ccnet.config中,我有项目,svn控制块和msbuild任务都指向'C:\ Users \ build \ repos \ QTSS \ trunk \ SparsePointSurface'。我用WD更改项目,将svn控制块更改为'C:\ Users \ build \ repos \ QTSS \ trunk \',这是.svn文件夹所在的位置。我将msbuild任务的WD保留到.sln文件的特定位置。终于在CCNet下成功构建了。活泉!谢谢克里斯亨利;你的评论让我顺利前往修复。
答案 1 :(得分:0)
您每次结账的原因是什么?
该错误通常意味着您正在尝试将SVN repo签出到已经显示为受SVN控制的文件夹中。您可以通过查找.svn文件夹来告诉文件夹处于SVN控制之下,至少在早期版本的SVN中是这样。
在我看来,你应该在Cruise Control中进行更新,而不是完整的结账。或者,您可以每次都进行全面检查,但是您需要删除当前所有文件。