2

我想使用 SVN externals 在不同项目之间共享代码文件。我需要向您询问有关该功能的问题,但请通过解释情况来解决。

  1. 我在 SVN 上创建了两个项目(目录):“A”和“B”。
  2. “A”包含要在其他项目之间共享的文件,其中一个名为“shared.txt”。
  3. “shared.txt”链接到“B”(使用“B”的 svn:externals 属性)。
  4. 除此之外,“B”还包含其他源代码文件(一个完整的项目)。

现在的问题。我检查了一些旧版本的“B”,以找出我会得到的“shared.txt”的哪个版本。不幸的是,无论我从我的测试存储库下载了哪个历史版本的“B”,我总是得到最新版本的“shared.txt”。

假设我想从几个月前下载项目“B”。在这几个月中,“shared.txt”经历了许多变化。但我想下载一个完整的项目,就像几个月前一样,以及当时的外部项目。

如果不手动寻找每个外部的适当修订版,这可能吗?我知道我可以将特定版本的外部组件关联到我的测试项目“B”,但这不是解决方案。我想如果我这样做,我将永远无法访问最新的外部组件,即使我查看了最新版本的“B”。我是对还是错?

感谢您的帮助(对不起,如果我的问题已经被问到,但我找不到任何类似的问题)。

4

1 回答 1

2

是的,这种形式的问题是前一段时间在这里提出的(比如“当 svn up -r {DATE} 在 superrepo URL 中,使用这个日期进行外部更新,如果它们是 HEAD 链接的”),它仍然没有好答案

发现的答案是“您必须cd进入所有外部 WC /directory-externals/ 并svn up -r {DATE}获得同步状态”。我没有回答文件回购

替代解决方案

开发过程中的动作更多,时间倒退的动作更少

  • 始终使用 PEG-revision 定义外部
  • 监控提交(因此 - 更改最高版本)到外部
  • 在外部提交之后,通过额外的提交来更改外部定义(也许可以在提交后挂钩中编写脚本以用于 repo-external)

ASF 的 FR “递归处理主仓库中 {DATE} 操作的子仓库”将很有用

于 2012-11-08T23:29:07.527 回答