Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
建议SVN用户使用Mercurial存储库/文件夹结构_Svn_Mercurial - Fatal编程技术网

建议SVN用户使用Mercurial存储库/文件夹结构

建议SVN用户使用Mercurial存储库/文件夹结构,svn,mercurial,Svn,Mercurial,我正在尝试使用Hg,以期离开SVN,但想了解一些关于如何构建Hg存储库的意见。我来自SVN背景(这可能会影响我的outlook如何工作!),我的存储库目前看起来像这样: Project1 trunk branches 1.0 1.1 Project2 trunk 这似乎是构建SVN存储库的“传统”方法 我应该如何用Hg复制它?为了给这一点增添趣味,我喜欢“稳定”、“qa”和“开发”存储库/文件夹的概念,如果可能的话,我想介绍一下 我是Hg初学者,欢迎您提供任何帮助或

我正在尝试使用Hg,以期离开SVN,但想了解一些关于如何构建Hg存储库的意见。我来自SVN背景(这可能会影响我的outlook如何工作!),我的存储库目前看起来像这样:

Project1
  trunk
  branches
    1.0
    1.1
Project2
  trunk
这似乎是构建SVN存储库的“传统”方法

我应该如何用Hg复制它?为了给这一点增添趣味,我喜欢“稳定”、“qa”和“开发”存储库/文件夹的概念,如果可能的话,我想介绍一下


我是Hg初学者,欢迎您提供任何帮助或建议。

Mercurial的文档非常丰富。你只需要知道在维基的什么地方可以找到

你可以看看Mercurial的维基文章,找到一些答案

您还应阅读Mercurial官方手册:


祝你好运

但是在你这么做之前-检查一下:-这是一个半小时的阅读,并且它有一个供svn用户使用的部分

这让我变得更加聪明,我决定放弃/trunk/tag结构,以不同的方式使用mercurial。我现在为每个项目都有一个存储库,它只包含项目的结构,我使用mercurial tag命令进行标记


.Jesper Hauge

Subversion(SVN)和Mercurial(HG)存储库(简称repo)在结构上存在一些差异,这意味着您将如何“设计”层次结构:

  • Mercurial在每个存储库只有一个项目的情况下工作得更好。:因为您总是要克隆整个存储库,在单个存储库中有多个项目可能会对克隆时间以及推/拉操作产生很大影响,因为您每次都必须同步在其他项目上完成的所有工作,而不是您的项目
  • SVN没有标记/分支的“强”概念,而Mercurial有:在SVN(撰写本文时)中,每个分支、每个标记基本上都是给定项目/文件夹/任何东西的副本。推荐的
    主干
    /
    分支
    /
    标记
    结构可以帮助您找到“副本”,不再需要了。另一方面,分支和标记在mercurial中定义良好。标记实际上是您放在特定修订版上的名称,您可以请求所有现有标记。对于分支,您将看到有很多方法可以处理它们,但最适合SVN哲学的方法是命名分支
考虑到这一点,并结合您对稳定、质量保证(QA)和开发(dev)过程的想法,我建议您:

  • 每个项目一个名为“Stable”的存储库。每个项目有几个“QA”回购协议,每个项目有成吨的“Dev”
  • 标记和名称分支仅由“稳定”回购协议定义,或最终由“QA”定义。“开发”回购协议可以以不同的方式处理它们,而不会造成损害
  • 你永远不会推动“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)

我喜欢每个项目单独存储库的想法。