我正在试验Hg,以便远离SVN,但想要了解如何构建我的Hg存储库。我来自SVN背景(这可能会影响我对这应该如何工作的看法!)我的存储库目前看起来像这样:
Project1
trunk
branches
1.0
1.1
Project2
trunk
等。这似乎是构建SVN存储库的“传统”方式。
我应该如何用Hg重现这个?为了增加这一点,我喜欢'稳定','qa'和'dev'存储库/文件夹的想法,并且如果可能的话想介绍它。
我是初学者,所以欢迎任何帮助或建议。
答案 0 :(得分:26)
Subversion(SVN)和Mercurial(HG)存储库之间存在一些结构差异,或者简称repo,意味着您将如何“设计”您的层次结构:
trunk
/ branches
/ tags
结构可以帮助您找回“副本”,不再需要。另一方面,分支和标签在mercurial中定义良好。标签实际上是您放在特定修订版上的名称,您可以要求提供所有现有标签。对于分支,您将看到有MANY ways来处理它们,但最适合SVN理念的分支被命名为分支。考虑到这一点,并将其与您的稳定,质量保证(QA)和开发(开发)流程相结合,我将推荐以下内容:
示例:MyProject-1.0
[STABLE Repository, pulls from any/all QA]
- MyProject-1.0
[QA Repositories, branched from STABLE, pulls from any/all DEV ]
- QA_MyProject-001 (Person A)
- QA_MyProject-002 (Person B)
- QA_MyProject-003 (Person C)
...
- QA_MyProject-### (Person #)
[DEV Repositories, branched from STABLE or QA]
- DEV_MyProject-001 (Feature X)
- DEV_MyProject-002 (Feature Y)
- DEV_MyProject-003 (Feature Z)
...
- DEV_MyProject-### (Feature #)
1. DEV completes feature(s)
2. QA pulls feature(s) from DEV
3. STABLE pulls from all approved QA(s) (consolidating all changes)
答案 1 :(得分:19)
但是在你这样做之前 - 请检查一下:hginit.com - 这是一个半小时的阅读,它有一个svn用户的部分。
让我更加明智,我决定放弃/ trunk / tag结构,并以不同的方式使用mercurial。我现在有一个每个项目的存储库,它只包含项目的结构,并使用mercurial tag命令进行标记。
.Jesper Hauge
答案 2 :(得分:9)
Mercurial的确有很好的记录。您只需要知道在Wiki中查看的位置。
你可以查看Mercurial的wiki文章RepositoryNaming来找到你的一些答案。
您还应该阅读官方的Mercurial手册:Mercurial: The Definitive Guide
祝你好运!