gpt4 book ai didi

svn - "svn:externals"有什么好处?

转载 作者:行者123 更新时间:2023-12-04 16:36:22 24 4
gpt4 key购买 nike

如果我没有遇到 this page,我就不会知道 svn:externals .所以,我设置了我的工作文件夹。然后

mkdir lib/vendor
svn add --parents lib/vendor
svn ps svn:externals 'symfony http://svn.symfony-project.com/branches/1.4/' lib/vendor/
svn ci -m "add externals"
svn update

“svn update”会占用整个 symfony 文件夹,而且速度很慢。我以为那将是一次痛苦。但是,每次我输入“svn up”时,SVN 都会检查外部存储库。我必须使用 --ignore-externals 使“svn update”足够快。

我想知道 svn:externals 如果这么慢有什么好处。我宁愿将 symfony 复制到我自己的存储库中,这肯定是一个更快的解决方案。

最佳答案

SVN 外部也与项目组织有很大关系。 Externals 可以是完全不同的 SVN repos,这意味着你可以设置不同类型的安全、保护、访问、pre-commit hooks、post-commit hooks 等......很难为不同的文件夹内部做不同级别的访问单个 SVN 存储库(没有 VisualSVN 之类的帮助),尝试为单个 SVN 存储库中的不同文件夹执行不同的备份或安全方法非常困难(并且可能是不明智的)。 Externals 允许我们使用单个 svn up 将多个不同的存储库拼接在一起,从而使我们更加自由。 .

Subversion 外部用例:

  • 一个常见的用例是外部包含库或其他一些不可变代码。如果您有 .dll,您绝对可以将其放入您的 SVN 存储库并将其视为您的代码库的一部分,但是您已经掩盖了 .dll 应该被视为只读而不是只读的事实由您或您的团队开发。
  • 另一个用例(您已经发现)是允许您的库保留在删除存储库中 - 可能由事件的开源项目维护。在这种情况下,您始终可以指向外部的特定版本,而不必担心自己存储它。
  • 最后,外部可以引入主干、分支或标签,这意味着您可以使用它们来拼接一个由您自己的模块的不同标签版本组成的项目。这将更接近地模仿诸如 Rational ClearCase 或任何其他大型版本控制系统之类的东西。您可以通过为代码库的每个模块或组件维护一个 SVN 存储库来做到这一点,为每个模式/组件创建一个标签,然后使用主存储库的 externals 属性引用这些标签 - 它的存在只是为了将它们拉到一起进入一个工作项目。
  • 关于svn - "svn:externals"有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3377593/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com