最近我们的Subversion (SVN)服务器发生了变化,我们进行了SVN切换。
由于工作副本有大量未版本化的资源,因此工作副本被锁定,我们开始为SVN下的所有文件夹逐个切换文件夹,这非常好。
但是在存储库的最高层,当我试图更新文件时,我得到一个错误,说svn:工作副本'。的锁。试图清理也无济于事;它会导致诸如svn: 'content'不是一个工作拷贝目录之类的错误。
新的结帐根本不是一个选项。我还可以如何清理和释放锁并完成svn切换过程?
最近我们的Subversion (SVN)服务器发生了变化,我们进行了SVN切换。
由于工作副本有大量未版本化的资源,因此工作副本被锁定,我们开始为SVN下的所有文件夹逐个切换文件夹,这非常好。
但是在存储库的最高层,当我试图更新文件时,我得到一个错误,说svn:工作副本'。的锁。试图清理也无济于事;它会导致诸如svn: 'content'不是一个工作拷贝目录之类的错误。
新的结帐根本不是一个选项。我还可以如何清理和释放锁并完成svn切换过程?
当前回答
我从相同的项目到不同的位置进行了新的签出,从中复制了.svn文件夹,并用旧的.svn文件夹替换它。
之后,我调用svn更新函数,所有内容都正确同步到最新。
其他回答
svn: 'svn://repourl/reponame/foldername'的存储库有uuid 'm/reponame',但WC有'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'
每个Subversion存储库都有一个唯一标识符(UUID)。Subversion使用这一点来确保在执行诸如切换之类的操作时,存储库实际上是相同的。您可能应该将服务器上的UUID更改为与以前相同。
我以不同的方式进入了类似的情况(svn: 'papers'不是一个工作拷贝目录),所以我想我将发布我的战斗故事(简化):
$ svn add papers
svn: Can't create directory 'papers/.svn': Permission denied
哦!修复权限……然后:
$ svn add papers
svn: warning: 'papers' is already under version control
$ svn st
~ papers
$ svn cleanup
svn: 'papers' is not a working copy directory
甚至把文件移开,运行svn up(对OP有效)也没能解决问题。以下是我所做的:
$ mv papers papers_
$ svn cleanup
$ svn revert papers
Reverted 'papers'
$ mv papers_/ papers
$ svn add papers
这工作。
我从相同的项目到不同的位置进行了新的签出,从中复制了.svn文件夹,并用旧的.svn文件夹替换它。
之后,我调用svn更新函数,所有内容都正确同步到最新。
如果您在一个新目录下创建了一个文件,请使用'svn add newdir/newfile'而不是'svn add newdir',因为您需要添加目录。默认情况下,将添加该目录中的所有文件。
我通过
复制受影响文件夹的备份 SVN恢复受影响的文件夹 从备份中粘贴回文件
在我的情况下,问题是由于删除。svn文件。