如何在 SVN 中进行分支并让它也对我的 svn:external 文件夹进行分支?
-
05-07-2019 - |
题
我在 Windows 中使用 tortoise svn。
如何在 SVN 中进行分支并让它也对我的 svn:external 文件夹进行分支?
解决方案
你应该使用 svn:externals
作为 外部的 来自不同存储库的引用。所以 svn:externals
应指组件、模块、第三方工具等。
你应该 不是 使用 svn:externals
通过使用外部指向同一存储库来模拟“符号链接”行为。大多数时候,您可以通过修改构建结构或使用签出脚本和稀疏签出功能来解决此类问题。
svn:externals 有很多问题,大多数都很难查看、跟踪和修复:请参阅此处的示例
- 提交不能跨越外部(无原子提交)
- 分支不会分支其外部(正如您所指出的)
- 标签不会“冻结”其外部,因此后面的构建可能会导致不同/损坏的构建
- 合并和重新集成合并不适用于外部
如果您使用外部指向其他存储库,则大多数时候不会遇到这些问题。
其他提示
您必须在外部存储库中手动创建分支,然后将svn:external属性更改为指向正确的分支。
在Subversion中创建分支时,您只需创建一个分支的主干,分支或标记的廉价副本。在您开始修改新分支的属性或文件之前,此廉价副本将包含与您分支的主干,分支或标记相同的所有文件和属性。
但是,您可以修改其中一个“提交”挂钩,以便在提交分支后自动修改设置。 http://svnbook.red-bean.com/en/1.1/ch05s02.html
否则,如果您希望在分支上修改外部,则需要手动修改。
现在有相对的外部。虽然你应该知道:) 我正在使用它们 - 在解决我遇到的一些麻烦的中间,但我正在进步。 我刚刚在其中创建相对外部之后标记了一个项目。 现在它很奇怪 - 当我检查分支时,它通知我外部是修订版“主干的顶部修订版”,但外部部分本身是原始的 - 这就是我想要的:)
不隶属于 StackOverflow