建议SVN用户使用Mercurial存储库/文件夹结构
我正在尝试使用Hg,以期离开SVN,但想了解一些关于如何构建Hg存储库的意见。我来自SVN背景(这可能会影响我的outlook如何工作!),我的存储库目前看起来像这样:建议SVN用户使用Mercurial存储库/文件夹结构,svn,mercurial,Svn,Mercurial,我正在尝试使用Hg,以期离开SVN,但想了解一些关于如何构建Hg存储库的意见。我来自SVN背景(这可能会影响我的outlook如何工作!),我的存储库目前看起来像这样: Project1 trunk branches 1.0 1.1 Project2 trunk 这似乎是构建SVN存储库的“传统”方法 我应该如何用Hg复制它?为了给这一点增添趣味,我喜欢“稳定”、“qa”和“开发”存储库/文件夹的概念,如果可能的话,我想介绍一下 我是Hg初学者,欢迎您提供任何帮助或
Project1
trunk
branches
1.0
1.1
Project2
trunk
这似乎是构建SVN存储库的“传统”方法
我应该如何用Hg复制它?为了给这一点增添趣味,我喜欢“稳定”、“qa”和“开发”存储库/文件夹的概念,如果可能的话,我想介绍一下
我是Hg初学者,欢迎您提供任何帮助或建议。Mercurial的文档非常丰富。你只需要知道在维基的什么地方可以找到 你可以看看Mercurial的维基文章,找到一些答案 您还应阅读Mercurial官方手册:
祝你好运 但是在你这么做之前-检查一下:-这是一个半小时的阅读,并且它有一个供svn用户使用的部分 这让我变得更加聪明,我决定放弃/trunk/tag结构,以不同的方式使用mercurial。我现在为每个项目都有一个存储库,它只包含项目的结构,我使用mercurial tag命令进行标记
.Jesper HaugeSubversion(SVN)和Mercurial(HG)存储库(简称repo)在结构上存在一些差异,这意味着您将如何“设计”层次结构:
- Mercurial在每个存储库只有一个项目的情况下工作得更好。:因为您总是要克隆整个存储库,在单个存储库中有多个项目可能会对克隆时间以及推/拉操作产生很大影响,因为您每次都必须同步在其他项目上完成的所有工作,而不是您的项目
- SVN没有标记/分支的“强”概念,而Mercurial有:在SVN(撰写本文时)中,每个分支、每个标记基本上都是给定项目/文件夹/任何东西的副本。推荐的
/主干
/分支
结构可以帮助您找到“副本”,不再需要了。另一方面,分支和标记在mercurial中定义良好。标记实际上是您放在特定修订版上的名称,您可以请求所有现有标记。对于分支,您将看到有很多方法可以处理它们,但最适合SVN哲学的方法是命名分支标记
- 每个项目一个名为“Stable”的存储库。每个项目有几个“QA”回购协议,每个项目有成吨的“Dev”
- 标记和名称分支仅由“稳定”回购协议定义,或最终由“QA”定义。“开发”回购协议可以以不同的方式处理它们,而不会造成损害
- 你永远不会推动“QA”或“稳定”回购,他们拉,或他们集成捆绑包或补丁,每个都有一个人负责
[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)
我喜欢每个项目单独存储库的想法。