svn:用同名的本地文件夹替换外部的简洁方法

时间:2011-01-13 17:10:11

标签: svn repository svn-externals

我在各个地方检查了存储库。我有一个文件夹X,它是另一个存储库的外部。我希望X是本地的。还有其他问题,但它们似乎没有遇到我的困难。

我做的是编辑了svn:externals并删除了该行。然后我提交了回购。然后我拿了文件夹,删除了其中的所有.svn条目(使其成为常规文件夹),然后svn add编辑它,然后提交。这很好。

然而,当我更新回购的另一个结账时,我遇到了问题。第一个错误是:

UUID mismatch: existing directory XXX was checked out from a different repository.

好的,已经svn up失败,但我尝试删除该文件夹并重新更新。现在它管理重新获取所有内容,但现在我收到一个新错误:

Can't remove file XXX: Access is denied

我再次尝试更新,没有任何反应。我删除该文件夹中的文件并从根目录再次更新,没有任何反应。我删除了文件夹X,没有任何反应 - 所以它似乎忘了它!我唯一的办法是删除X的根目录并从级别向下重新svn up(因为所有这些也发生在同样是外部的子文件夹中)。

不好..我不想在签出此存储库的所有站点上执行某些手动rigamarole。怎么办?

2 个答案:

答案 0 :(得分:3)

也许不是最干净的解决方案,但它确实有效:

  • 删除本地副本中的外部文件夹(不要使用svn rm文件夹)
  • 使用存储库中的版本进行更新

答案 1 :(得分:0)

不确定它是否有效,但值得一试。

尝试更新到删除外部的修订版本,然后更新头部。

// XX revision of the externals deletion
svn update -rXX 
// to see if the folder is deleted
svn status
// delete the folder if he is on the local working copy
svn rm folder
// Update to head
svn update