我们使用 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,我为其中一个名为 SparsePointSurface 的子文件夹配置了一个 CCNet 项目;最终,我将为每个子文件夹创建一个 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 switch/merge 操作的问题,但这不是我想要做的。
请注意,在 TortoiseSVN GUI 中,我可以在文件资源管理器中右键单击 SparsePointSurface,选择“SVN Checkout”,它工作正常。