最近我们的Subversion (SVN)服务器发生了变化,我们进行了SVN切换。

由于工作副本有大量未版本化的资源,因此工作副本被锁定,我们开始为SVN下的所有文件夹逐个切换文件夹,这非常好。

但是在存储库的最高层,当我试图更新文件时,我得到一个错误,说svn:工作副本'。的锁。试图清理也无济于事;它会导致诸如svn: 'content'不是一个工作拷贝目录之类的错误。

新的结帐根本不是一个选项。我还可以如何清理和释放锁并完成svn切换过程?


当前回答

如果您在一个新目录下创建了一个文件,请使用'svn add newdir/newfile'而不是'svn add newdir',因为您需要添加目录。默认情况下,将添加该目录中的所有文件。

其他回答

我刚刚遇到了这样一种情况:.svn目录位于另一台机器上的NFS服务器上,NFS客户端没有运行文件锁定服务(lockd)。

svn: E155007: '/mnt/svnworkdir' is not a working copy

在NFS客户端主机上启动lockd之后,这个问题就消失了。

当Subversion无法锁定文件时,它似乎可以提供更好的错误消息。这是Subversion 1.10.0

jesere提到您需要更改UUID。以下内容将帮助您实现这一目标。

在SVN 1.5+上,可以执行svnadmin setuuid;然后,您可以使用svnlook uuid检查它是否被正确设置。在SVN的早期版本中,这是一个比较困难的过程。请参见管理存储库uuid。

此外,“m/reponame”的UUID看起来可疑。我相信它应该是一个十六进制的数字,就像工作副本一样,所以也许这个动作会全面改善事情:-)

我从相同的项目到不同的位置进行了新的签出,从中复制了.svn文件夹,并用旧的.svn文件夹替换它。

之后,我调用svn更新函数,所有内容都正确同步到最新。

您必须从项目中删除一个SVN基文件(这些文件是只读文件)。因此你会得到这个错误。

再次签出一个新项目,使用WinMerge将旧SVN项目的更改(如果有的话)与新项目合并,并在最近的签出中提交更改。

最近我在用另一家开发商的Mac。 我也遇到过同样的情况。问题是;首先,我需要在终端中输入获取存储库路径,但我没有。然后它会显示你的用户名和密码。