如何在SVN中分支,并使其也分支我的svn:external文件夹?

问题描述:

我在Windows中使用乌龟svn。

I'm using tortoise svn in Windows.

如何在SVN中分支并使其分支我的svn:external文件夹?

How can I branch in SVN and have it branch my svn:external folders as well?

您应使用 svn:externals 作为来自以下内容的 external 引用不同的存储库。因此 svn:externals 应该指的是组件,模块,第三方工具等。

You should use svn:externals as external references from different repositories. So svn:externals should refer to components, modules, 3rd party tools, etc.

您应 使用 svn:externals 来模拟符号链接行为,即通过使用外部变量指向同一存储库来进行。
您通常可以通过修改构建结构来解决此类问题,或者使用checkout-scripts和稀疏签出功能。

You should not use svn:externals to emulate a "symbolic link"-behaviour by using externals to point into the same repository. You can solve such issues most of the time by modifying your build-structure, or use checkout-scripts and sparse checkout feature.

svn:外部对象具有许多问题大多数很难看到,跟踪和修复:
在此处查看示例

svn:externals have a lot of problems most of them are difficult to see, track and repair: see an example here


  • 提交不能跨越外部对象(无原子提交)

  • 分支机构不会分支其外部组件(如您所指出的那样)

  • 标签不会冻结其外部组件,因此后面的版本可能会导致不同的版本/损坏的版本

  • 合并和reeintegrate合并不适用于外部容器

  • commits cannot span over externals(no atomic commits)
  • branches will not branch their externals(as you pointed out)
  • tags will not "freeze" their externals so latter builds may result in different/broken builds
  • merging and reeintegrate merge will not work on externals

如果您使用外部容器指向其他存储库,则将大部分时间没有这些问题。

If you use externals to point to other repositories, you will most of the time do not have these problems.