Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
svn:用同名本地文件夹替换外部文件夹的干净方法_Svn_Repository_Svn Externals - Fatal编程技术网

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

svn:用同名本地文件夹替换外部文件夹的干净方法,svn,repository,svn-externals,Svn,Repository,Svn Externals,我在不同的地方签出了一个存储库。我有一个文件夹X,它是另一个存储库的外部文件夹。我希望X是本地的。还有其他问题,但它们似乎没有遇到我的困难 我所做的是编辑svn:externals并删除该行。然后我提交了回购协议。然后我取出文件夹,删除其中的所有.svn条目(使其成为常规文件夹),然后svn添加它,然后提交。这很有效 然而,当我更新回购协议的另一次结算时,我遇到了问题。第一个错误类似于: UUID mismatch: existing directory XXX was checked out

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

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

然而,当我更新回购协议的另一次结算时,我遇到了问题。第一个错误类似于:

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
(因为所有这些都发生在一个子文件夹中,该子文件夹也是一个外部文件夹)


不太好。。我不想在签出此存储库的所有站点上进行一些手动操作。怎么办?

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

尝试更新到删除外部内容的版本,然后更新头部

// 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

也许不是最干净的解决方案,但它可以:

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