SVN错误“<folder>已经是不同URL的工作副本”究竟是什么意思?</folder>

时间:2013-03-24 21:49:15

标签: svn

我们使用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”,它可以正常工作。

2 个答案:

答案 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中进行更新,而不是完整的结账。或者,您可以每次都进行全面检查,但是您需要删除当前所有文件。