如何在 SVN 中进行分支并让它也对我的 svn:external 文件夹进行分支?

发布于 2024-07-07 16:25:49 字数 88 浏览 10 评论 0原文

我在 Windows 中使用 tortoise svn。

如何在 SVN 中进行分支并让它也对我的 svn:external 文件夹进行分支?

I'm using tortoise svn in Windows.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

意中人 2024-07-14 16:25:49

您应该使用 svn:externals 作为来自不同存储库的外部引用。 因此,svn:externals 应该引用组件、模块、第 3 方工具等。

您不应该使用 svn:externals 来模拟“符号”通过使用外部指向同一存储库的“链接”行为。
大多数时候,您可以通过修改构建结构或使用签出脚本和稀疏签出功能来解决此类问题。

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.

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:externals have a lot of problems most of them are difficult to see, track and repair:
see an example here

  • 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.

雨的味道风的声音 2024-07-14 16:25:49

您必须在外部存储库中手动创建分支,然后更改 svn:external 属性以指向正确的分支。

You'll have to manually create a branch in your external repository and then change your svn:external property to point to the correct branch.

多情癖 2024-07-14 16:25:49

当您在 Subversion 中创建分支时,您只是创建了您要分支的主干、分支或标记的廉价副本。 此廉价副本将包含与您从中分支的主干、分支或标记相同的所有文件和属性,直到您开始修改新分支的属性或文件。

但是,您可以修改“提交”挂钩之一,以便在提交分支后自动修改设置。 http://svnbook.red-bean.com/en/1.1/ch05s02.html

否则,如果您希望修改外部内容在分支上,您需要手动执行此操作。

When you create a branch within Subversion you are simply creating a cheap copy of the trunk, branch, or tag that you are branching from. This cheap copy will contain all of the same files and properties as the trunk, branch, or tag that you branched from until you begin to modify the properties or files of the new branch.

However, you may be able to modify one of the 'commit' hooks to modify settings automatically once you commit your branch. http://svnbook.red-bean.com/en/1.1/ch05s02.html

Otherwise if you want your externals to be modified on the branch you will need to do so manually.

心在旅行 2024-07-14 16:25:49

现在有相对的外部因素。 虽然你应该知道:)
我现在正在使用它们 - 在解决我遇到的一些麻烦的过程中,但我正在进步。
我刚刚在项目内部创建了相关外部后标记了一个项目。
现在它很奇怪 - 当我检查分支时,它通知我外部来自修订版“主干的顶部修订版”,但外部本身是原始的 - 这就是我想要的:)

there are relative externals now. though you should know :)
im using them right now - in the middle of solving a few troubles i got, but im progressing.
i just tagged a project after creating relative externals inside it.
for now its wierd - when i check out the branch, it notifies me the externals are from revision "top revision of the trunk", but the externals themselves are the original ones - which is what I want :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文