【问题标题】:tag partial tree vs full trunk in svn在svn中标记部分树与完整树干
【发布时间】:2010-12-27 19:00:10
【问题描述】:

我们有一个具有以下结构的存储库:

repos
  trunk
    module1
    module2
    ...
  tags
  branches

我们通常向客户发布单个模块,有时甚至发布整个应用程序。

现在我们要交付模块 1,我正在尝试在这两个选项之间做出决定:

  • a) 标记module1(即将trunk/module1复制到tags/module1_v1.00)
  • b) 标记整个主干(即将主干复制到 tags/v1.00)

是否有所有标签都应包含完整主干的约定? 有什么好的理由去做一件事或另一件事吗?

谢谢!

【问题讨论】:

  • 无论哪种方式都没有额外的费用,你有什么不喜欢标记整个树干的吗?
  • 这不是成本问题。如果我要发布模块 1,我不关心模块 2 可能处于的状态。也许 module2 正在进行一些工作,现在不应该被标记。另外我想明确表示我正在发布模块 1,而不是任何其他模块。

标签: svn version-control tags


【解决方案1】:

你可以有类似的东西

trunk
  module1
  module2
tags
  fullProject
  components
    module1
    module2

这样您就可以独立于您的完整项目版本来标记您的模块版本。例如tags/components/module1/20091217

【讨论】:

    【解决方案2】:

    如果存在相互依赖关系,那么你应该标记所有,否则只标记一个就可以了。无论哪种方式,您都希望保持一致。

    如果你标记一个模块,路径应该是:

    /tags/rel_1.0/module1
    

    不是

    /tags/module1_v1.0
    

    当然你可以随心所欲,但最好遵循 SVN 的建议。

    http://svnbook.red-bean.com/en/1.5/svn.branchmerge.commonpatterns.html

    【讨论】:

    • 我找不到针对这个特定问题的 svn 推荐。如果我听从您的建议,那么在两周后创建 module2 的 v1.00 时,它将位于同一个 rel_1.0 目录中......我无法判断它是整个项目的 v1.00 还是 v1 module1 的 .00 和 module2 的 v1.00
    • 如果您的“模块”如此脱节,那么您不应该将它们全部放在一个主干中,而是每个都应该有自己的一组标签/分支/主干目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    相关资源
    最近更新 更多