代码之家  ›  专栏  ›  技术社区  ›  Rob

为SVN用户推荐的Mercurial存储库/文件夹结构

  •  24
  • Rob  · 技术社区  · 14 年前

    Project1
      trunk
      branches
        1.0
        1.1
    Project2
      trunk
    

    这似乎是构建SVN存储库的“传统”方法。

    我是一个汞初学者,所以任何帮助或建议是欢迎的。

    3 回复  |  直到 14 年前
        1
  •  26
  •   Nick DeVore    13 年前

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

    • Mercurial在每个存储库只有一个项目的情况下工作得更好 :由于您总是必须克隆整个存储库,因此在单个存储库中有多个项目可能会对克隆时间以及推/拉操作产生很大影响,因为您每次都必须同步在其他项目上完成的所有作业。
    • SVN没有“强烈”的标记/分支概念,而Mercurial有 :在SVN中(编写时),每个分支、每个标记基本上都是给定项目/文件夹/任何内容的副本。推荐的 trunk branches / tags 结构是为了帮助你找到你的“副本”回来,没有更多。另一方面,分支和标记在mercurial中定义良好。一个标签实际上是一个名字,你把一个特定的修订,你可以要求所有现有的标签。对于分支,您将看到 MANY ways

    考虑到这一点,再加上您对稳定、质量保证(QA)和开发(dev)过程的想法,下面是我的建议:

    • 你从来没有推动“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)
    
        2
  •  19
  •   Hauge    14 年前

    但在你这么做之前-看看这个: hginit.com

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

        3
  •  9
  •   Symbiosoft    14 年前

    Mercurial确实有很好的记录。你只需要知道在维基上找哪里。

    RepositoryNaming

    您还应该阅读Mercurial官方手册: Mercurial: The Definitive Guide

    祝你好运!