首页 > 解决方案 > 使用 Subversion,有没有办法在另一个 WC 中添加一个 WC?

问题描述

假设我有一个 WC,1,里面有另一个 WC,2:例如

结构:

/1
  /.svn
  /2
    /.svn

其中 2 完全从不同的存储库中签出(不是同步/镜像)

有没有办法svn add 2不收到消息:

svn: warning: W150002: '/1/2' is already under version control
svn: E200009: Could not add all targets because some targets are already versioned
svn: E200009: Illegal target for the requested operation

目前我只是重命名.svn@svn预添加。

标签: svn

解决方案


如果你想真正合并wc-2wc-1你应该export wc-2从存储库:

svn export svn://wc-2
svn add wc-2
svn commit wc-2

在这种情况下,您将失去与wc-2存储库的连接,因此当它有新提交时您无法更新它。

如果你想在你的wc-1工作副本中更新它,你想阅读externals

有时构建一个由许多不同的结帐组成的工作副本很有用。例如,您可能希望不同的子目录来自存储库中的不同位置,或者可能完全来自不同的存储库。你当然可以手动设置这样的场景——使用 svn checkout 来创建你想要实现的那种嵌套的工作副本结构。但是,如果此布局对使用您的存储库的每个人都很重要,那么每个其他用户都需要执行与您所做的相同的检出操作。

幸运的是,Subversion 提供了对外部定义的支持。外部定义是本地目录到版本目录的 URL(理想情况下是特定修订版)的映射。


推荐阅读