1

我们目前使用 VSS 进行源代码控制管理,但我们想转换为其他系统。VSS 支持在不同项目之间共享单个文件。似乎只有在流行的 SCM 系统中(?)SVN 也提供此功能(svn:externals)。其他人仅启用共享文件夹。这就是为什么 SVN 是我们将 repo 转换为的候选者的原因,因为它可能比重新设计 repo 中所有项目的结构以将它们调整为目录共享要容易得多。

但是,SVN 外部必须绑定到指定的文件修订(我不想考虑将外部绑定到头部修订的可能性,因为这样就不可能获得具有足够外部的历史项目版本)。这样,当共享文件被修改时,它不会影响将该文件用作外部文件的任何项目。

因此,当您在其头部版本中下载此类项目之一时,您将不会获得修改后的外部的最新版本。有必要手动修改引用该文件的 externals 属性以更新它。在类似的情况下,VSS 会在获取当前版本中的项目时为您提供其头版本中的所有文件(包括共享文件)。

我想知道如何使 SVN 类似地工作。当我从 repo 获得项目的 head 版本时,我也想在他们的 head 修订中获取所有相关的外部。但我被困住了,不知道如何直接或间接地实现它。

也许一些脚本?但是他们必须做什么,什么时候应该运行?当文件被修改时,他们是否应该更新使用共享文件的项目的所有外部属性?还是应该在下载项目后立即运行它们以更新其外部?

我将非常感谢任何可以引导我找到一个好的解决方案的想法。非常感谢!

4

1 回答 1

2

这是您正在寻找的答案:

find . -name .svn -execdir svn update -r {2010-08-30} \;

(信用:https ://stackoverflow.com/a/3608453/1284631 )

于 2012-12-23T21:44:03.793 回答