如何修复subversion客户端“无法升级'some / dir',因为它不是工作副本root

时间:2016-06-29 00:13:54

标签: svn

我正在尝试将运行subversion客户端版本1.6的非常旧的服务器更新为更新版本,并且我遇到了一个奇怪的错误消息。我已经谷歌了,但没有找到任何澄清它的东西。有谁知道我可以做些什么来处理我的存储库中的Subversion外部目录?

我安装了更新版本的subversion客户端(在debian,FWIW上)并运行“svn upgrade”后,它失败了:

svn: warning: W205011: Error handling externals definition for 'conf/some_dir':
svn: warning: W155019: Can't upgrade '/home/myhome/svn/the_project/conf/some_dir' as it is not a working copy root

应该做些什么来解决这个问题?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,以防对其他人有帮助。

在我的情况下,发生的事情是conf / some_dir目录已经通过svn:externals定义,但之后有人以某种方式将其添加为存储库的直接本地成员。实际上,svn:externals定义被当地孩子蒙上了阴影。这意味着某些操作可以正常运行,例如更新,提交等。其他操作虽然会遇到svn:externals定义并且变得非常混乱。

我通过尝试将repo置于只有本地子目录的状态来解决这个问题。这通过重命名存储库中的本地目录(在服务器上!)并删除工作副本上的svn:externals属性,更新,然后将目录重新命名为其原始名称:

cd ~/svn/the_project
svn propdel svn:externals .
svn mv svn+ssh://my-repo-server/the_project-repo/conf/some_dir svn+ssh://my-repo-server/the_project-repo/conf/some_dir-temp
svn update .
svn mv svn+ssh://my-repo-server/the_project-repo/conf/some_dir-temp svn+ssh://my-repo-server/the_project-repo/conf/some_dir

痛苦但解决了它。 YMMV