【问题标题】:GIT / Mercurial Crossover with SVN for Development teams用于开发团队的 GIT / Mercurial Crossover 与 SVN
【发布时间】:2010-11-18 16:11:55
【问题描述】:

问题是我希望能够使用 Mercurial 或 git 作为开发的前端,但在 Subversion 中进行更改集和更新,通常在集成分支或仅由Mercurial 的脚本,或者 Hudson 注意到更改时的脚本。然后我们的 Mercurial 存储库会根据使用 SVN 的其他开发人员所做的更改进行更新,我们将更改拉入并集成它们并在提供新的开发版本之前测试更改等。

有谁知道合并和分支的开发团队是否可能出现以下场景?或者如果有更好的方法......除了强大的武装人们只使用一种工具?

以下策略由以下组件组成:

  • SVN
  • 使用 Mercurial 一对一克隆 SVN
  • Mercurial 开发存储库

在下面的配置中,更新通常会从 SVN/trunk 提取到克隆 (hgsubversion)。克隆将是只读的,并且会定期有一个用于更改的脚本。然后克隆将被克隆到一个可读写的开发存储库中(它是一个常规的 Mercurial 存储库)。当开发人员将更改推送到此开发人员存储库时,驻留在集成分支中的元素将被推送到 SVN/集成分支。此分支仅由自动化脚本提交。如果其他使用 svn 的开发人员只将更改推送到 SVN 的主干,他们可以被拉入克隆并合并到 Mercurial 的环境中。不利的一面是,您将失去更改来源的 SVN 级别的可见性。

[[[[ trunk [[[[[[[[[[[[[[[[[[[[[[[[ SVN ]]]]]]]]]]]] branch/integration ]]]]]]]]]]]]]]]]]]
        |                                                   ^
        |                                                   |
        |                                                   |
        v                                                   |
SVN - Mercurial Clone                                       |
        |                                                   |
        |                                                   |
        |                                                   |
        v                                                   |
Mercurial - Development ---------------------------- Branch - Integration

【问题讨论】:

  • 我应该提一下,通过前端开发,我已经在使用 hgsubversion,这对我来说很好。但我希望能够利用基于团队的分布式开发。
  • 我个人喜欢强力武装方法 :) 而且 Mercurial 的用法与 SVN 非常相似。

标签: svn git mercurial hgsubversion


【解决方案1】:

在使用 DVCS 的课程中​​,这实际上是我解释的主要用例之一,而且我认为这表明了 DVCS 的强大之处...

你有几种方法可以做到。

手动方式

SVN/checkout 代码,然后 Hg/initHg/commit 一切。然后你在 Hg 下做你的工作,提交小的和频繁的原子修改本地。当你想重新提交到 SVN 时,你首先Hg/up 到你刚刚在 SVN/checkout 之后所做的 Hg 修订。你SVN/up不会有 SVN 冲突,因为你刚刚从一个普通的 SVN 版本更新。你Hg/commitHg/merge,然后是SVN/commit。如果有人同时在 SVN 中提交,则重复操作:Hg/up 到最后一个干净的 SVN 修订版,SVN/upHg/commit+merge。

跟踪最新 SVN 干净修订的方式取决于您。您可以使用每次更改的标签,将 SVN 修订保留在分支或单独的存储库中。 TIMTOWTDI

额外的好处:这也是一种为使用 Hg 的人充当 SVN 提交者的方式,而他们不受版本控制。

自动方式

我从来没有这样用过,但tailor 能够反复进行两种方式的 SVN/Hg 转换。

【讨论】:

  • 是的,我在从 SVN 到 mercurial 的过渡期间最终使用了这个过程。我基本上有一个分支用于任何剩余的 SVN 更新。一旦每个人都安顿好,并且我们准备好在 mercurial 环境中处理我们的测试过渡,我提取了最后的 SVN 更新,与 mercurial 更改合并并承诺默认,我宣布将开始新的开发。效果很好。
猜你喜欢
  • 1970-01-01
  • 2011-08-06
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多