SVN错误-不是工作副本
最近我们的svn服务器发生了变化,我们进行了svn切换 由于工作副本有大量未版本化的资源,工作副本被锁定,我们开始为svn下的所有文件夹逐个切换文件夹,效果非常好 但是在存储库的最顶层,当我尝试更新文件时,我得到了svn:Working copy.“.”锁定的错误和清理也没有帮助。当我进行清理时,会出现如下错误-svn:“content”不是工作副本目录 全新结账根本不是一个选项。是否有其他方法来清理和释放锁,并完全切换 编辑: 杰斯佩尔回答的最后一段 如果您在以下时间收到“非工作副本” 执行递归“svn清理”我的 我猜你有一个目录 哪一个应该是工作副本(即。 顶层的.svn目录 但它却失去了自己的价值 .svn目录。那样的话,你 你可以试着把它移走 目录,然后执行本地更新 似乎是存储库中问题的解决方案。我已经确定了这些文件夹,并单独对这些特定文件夹进行了新的签出,哇,锁在随后的清理中被释放了!非常感谢JesperE 但是,我仍然无法找出svn开关错误,它现在的读数如下: svn:位于 'svn://repourl/reponame/foldername' uuid为'm/reponame',但WC 具有“b5b39681-0ff6-784b-ad26-2846b9ea8e7d” 有什么想法吗?如果你在执行递归SVN错误-不是工作副本,svn,Svn,最近我们的svn服务器发生了变化,我们进行了svn切换 由于工作副本有大量未版本化的资源,工作副本被锁定,我们开始为svn下的所有文件夹逐个切换文件夹,效果非常好 但是在存储库的最顶层,当我尝试更新文件时,我得到了svn:Working copy.“.”锁定的错误和清理也没有帮助。当我进行清理时,会出现如下错误-svn:“content”不是工作副本目录 全新结账根本不是一个选项。是否有其他方法来清理和释放锁,并完全切换 编辑: 杰斯佩尔回答的最后一段 如果您在以下时间收到“非工作副本” 执行递
svn清理时得到一个“非工作副本”
我猜你有一个应该是工作副本的目录(即顶层的.svn
目录是这样说的),但它缺少自己的.svn
目录。在这种情况下,您可以尝试删除/移动该目录,然后进行本地更新(即,rm-rf内容;svn签出内容
)
如果您得到一个非工作副本
错误,则意味着Subversion无法在其中找到合适的.svn
目录。检查目录中是否有.svn
目录
如果可能的话,理想的解决方案是重新结账
svn:存储库位于'svn://repourl/reponame/foldername'具有uuid'm/reponame',但WC具有'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'
每个subversion repo都有一个唯一标识符(uuid)。Subversion使用这一点来确保在进行切换等操作时回购协议实际上是相同的。您可能应该将服务器上的uuid更改为与以前相同。这可能是工作副本格式不匹配吗?它在svn 1.4和1.5之间进行了更改,较新的工具会自动转换格式,但较旧的工具不再使用转换后的副本。您必须已从项目中删除svn-base文件(只读文件)。由于这个原因,您会得到这个错误
再次签出新项目,使用“Winmerge”将旧SVN项目的更改(如果有)与新项目合并,并在最近的签出中提交更改。解决方法:
重命名不是“工作副本”的目录
再次签出/更新/还原此目录
将文件从重命名的目录移动到新目录
提交更改
原因:
您对.svn目录下的某些文件进行了一些更改,这将中断您需要更改uuid的“工作副本”。以下内容将帮助您实现这一目标
在SVN 1.5+上,可以执行svnadmin setuuid;然后,您可以使用svnlook uuid检查它是否已正确设置。在SVN的早期版本中,这是一个更难的过程。看
此外,“m/reponame”的UUID看起来可疑。我相信它应该是一个十六进制格式的数字,就像工作副本的一样,所以也许这个操作将全面改进:-)
[我最初发表了评论,但创建这个答案是为了让人们更清楚,对谷歌更有帮助。后来我删除了我的评论。]我也遇到了类似的情况(svn:'papers'不是一个有效的副本目录
),所以我想以不同的方式发布我的战斗故事(简化):
哎呀!修复权限。。。然后:
$ 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
这很管用。我刚收到“没有工作副本”,对我来说,原因是Unix上的Automouter。
只需要一个新的“cd/path/to/work/directory”就可以了。如果您在新目录中创建了一个文件,而不是“svn add newdir/newfile”,请使用“svn add newdir”,因为您需要添加该目录。默认情况下,将添加目录中的所有文件。我通过
复制受影响文件夹的备份
SVN还原受影响的文件夹
从备份中粘贴文件
在我的例子中,问题是由于删除了.svn文件 同样,我需要更新“contrib”文件夹:
将旧文件夹移出
复制了新的
将.svn文件夹复制到每个新文件夹中(在我的示例中只有三个)
我也知道我的案例问题是由于删除了.svn文件夹造成的
已解决。可能您只是复制了文件夹的树,并尝试添加最低的树
SVN
|_
|
subfolder1
|
subfolder2 (here you get an error)
在这种情况下,您必须在上层提交目录。也有同样的问题,结果是我们在同一台机器上有Slik 1.6.2和Tortoise。Ortoise已经更新(并且已经更新了工作副本),但是Slik没有更新,所以Ortoise工作正常,但是命令行失败,原因是:
svn:“.”不是工作副本目录
删除Turtoise和Slik,然后在启用命令行工具的情况下重新安装Turtoise修复了这一问题。我尝试将.svn文件夹从子文件夹粘贴到根文件夹。它工作 我就是这么做的:
$ mv papers papers_
$ svn cleanup
$ svn revert papers
Reverted 'papers'
$ mv papers_/ papers
$ svn add papers
将主干重命名为主干_
创建一个
svn: E155007: '/mnt/svnworkdir' is not a working copy