首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"svn:externals“有什么好处?

"svn:externals“有什么好处?
EN

Stack Overflow用户
提问于 2010-07-31 17:45:00
回答 3查看 2.2K关注 0票数 3

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

代码语言:javascript
复制
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都会检查外部存储库。为了让"svn更新“足够快,我必须使用--ignore-externals。

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

EN

回答 3

Stack Overflow用户

发布于 2010-07-31 19:50:17

SVN外部也与项目组织有很大关系。外部可以是完全不同的SVN repos,这意味着您可以设置不同类型的安全性、保护、访问、提交前挂钩、提交后挂钩等。很难对单个SVN repo中的不同文件夹执行不同级别的访问(如果没有VisualSVN之类的帮助),并且尝试对单个SVN repo中的不同文件夹执行不同的备份或安全方法是非常困难的(而且可能是不明智的)。External允许我们用一个svn up将几个不同的存储库拼接在一起,这让我们有了更多的自由。

Subversion外部用例:

  1. 一个常见的用例是外部包含库或其他一些不可变的代码。如果你有一个.dll,你完全可以把它放到你的SVN repo中,并将其作为代码库的一部分,但是你掩盖了这个.dll应该被视为只读的事实,它不是由你或你的团队开发的。
  2. 另一个用例(你已经发现了)是允许你的库保留在一个移除的库中--可能是由一个活动的开源项目维护的库。在这种情况下,您可以始终指向外部的特定版本,而不必担心存储它。yourself.
  3. Finally,外部可以引入主干、分支或标记,这意味着您可以使用它们将由您自己模块的不同标记版本组成的项目缝合在一起。这将更接近于Rational ClearCase或任何其他大型版本控制系统。为此,您可以为代码库的每个模块或组件维护一个SVN代码库,为每个模式/组件创建一个标记,然后使用主存储库的外部属性引用这些标记-主存储库的存在只是为了将它们放到一个工作项目中。
票数 5
EN

Stack Overflow用户

发布于 2010-07-31 18:01:54

你使用外部变量的方式是为那些想要修改一些代码的人准备的,例如,如果你在一个内部项目中,所有种类的库和应用程序都是共同开发的。通常,您不应该在没有充分理由的情况下这样做,因为外部中的代码修订可能会破坏您的代码-如果您没有权利修复外部,那么使用它就会变得有点麻烦。

您可以将外部存储库的特定修订提取到您自己的存储库的所谓供应商分支中,也可以将修订参数开关添加到您的外部定义中,例如:

http://thinkinging.com/2008/10/21/set-the-revision-of-your-svnexternals-or-else/

票数 3
EN

Stack Overflow用户

发布于 2010-07-31 18:02:39

svn:外部机制的行为正如所宣传的那样。问题是您正在使用一个公共subversion存储库(通过internet访问),我假设它是一个本地存储库。因此,在更新内部存储库和外部引用存储库的时间上,您会看到明显的差异。

复制到您的存储库肯定是一个可行的解决方案。如何做到这一点在Subversion book中有明确的说明。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3377593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档