使用mercurial相当新,并且对于从开发代码中分离实时代码的好方法有点困惑。我来自使用PureCM,其中所有内容都分为Streams,您可以简单地将一个Stream合并到另一个。我的目标是在mercurial中设置一些表现相似的东西。
理想情况下,无论我采取什么样的途径,还包括一条路径,可以轻松地将开发代码合并到实时代码中,同时保持更改集历史记录。
有哪些方法可用以及有关如何完成的任何文档?
答案 0 :(得分:2)
Branches是你想要的。您可以创建一个稳定的分支和一个dev分支(以及您可能想要的任何其他分支),并在您认为合适时将dev分支中的任何更改合并到stable中。
例如,假设你有一个没有分支的仓库(除了默认值),你想要一个dev分支和一个稳定的分支。你要做的第一件事是制作开发分支
hg branch dev
现在你的工作副本在分支dev上,你做的任何提交都将在dev上。如果您现在键入hg branches
,则应该说
dev
default
切换回默认分支类型hg up default
最后,如果要将dev分支中的更改合并到默认值,则键入
hg up default # update to the default branch
hg merge dev # merge changes from dev into working copy (default in this case)
如果使用hgweb发布您的存储库,您还可以在其上看到提交和分支的漂亮图表。
答案 1 :(得分:0)
免责声明:我从未使用PureCM,但谷歌搜索它我发现它不是分布式模型。所以我从那个方向回答我的答案。
听起来好像您可能会更多地考虑分布式版本控制的工作方式。这是分布式和非分布式源代码控制之间的根本区别之一(在我看来,这是它给你的一大胜利)。
由于您没有绑定到中央存储库,因此您的“实时”代码只是任何特定存储库的另一个克隆。从技术上讲,你对分布式源代码控制系统的任何代码所做的所有克隆都算作“分支”(可能是也可能不像PureCM的流,虽然我觉得它们很相似)。也就是说,如果你有一个所有开发人员都可以使用的中央存储库,那么你需要做的就是在你使用它的任何时候克隆你的代码副本,这就是你的实时“分支”。这样你的开发人员就可以继续使用最新的代码,并且与最新的代码保持合并,并且你拥有一个完整的存储库,这就是你所拥有的代码。
这么长的故事很长,它只是另一个克隆。这有道理吗?
作为旁注/示例,我目前的工作流程与我的一个项目相关的方式,我们使用“中央”DVCS存储库作为额外克隆所在的位置。因此,我们拥有每个人都可以使用的主要“应用程序”,然后我们有“app-release-1-1-11”(包括它上线的日期)。因此,已发布的代码也可在中央仓库中获得。希望有所帮助!
答案 2 :(得分:0)
查看hginit.com教程 - 这涵盖了一些标准策略。
我们所做的是拥有单独的存储库,我们将拥有一个prod支持存储库和一个dev存储库。对prod支持的维护更改将合并回dev。