gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 10:49:57 26 4
gpt4 key购买 nike

我正在试验 Hg,以期摆脱 SVN,但想要一些关于我应该如何构建 Hg 存储库的意见。我来自 SVN 背景(这可能会影响我对它应该如何工作的看法!)并且我的存储库目前看起来像这样:

Project1
trunk
branches
1.0
1.1
Project2
trunk

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

我应该如何用 Hg 重现这个?为了让这更有趣,我喜欢“稳定”、“qa”和“开发”存储库/文件夹的想法,如果可能的话,我想介绍一下。

我是 Mercurial 初学者,因此欢迎任何帮助或建议。

最佳答案

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

  • Mercurial 在每个存储库只有一个项目时效果更好 :因为您总是需要克隆整个存储库,所以在单个存储库中有多个项目可能会对克隆时间以及推/拉操作产生很大影响,因为您必须同步所有已完成的工作每次都在你以外的其他项目上。
  • SVN 没有标记/分支的“强”概念,而 Mercurial 有 :在 SVN 中(在撰写本文时),每个分支、每个标签基本上都是给定项目/文件夹/任何东西的副本。推荐trunk/branches/tags结构可以帮助您找到您的“副本”,仅此而已。另一方面,分支和标签在 mercurial 中有很好的定义。标签实际上是您放在特定修订版上的名称,您可以要求所有现有标签。对于分支,您会看到 MANY ways处理它们,但最适合 SVN 哲学的那个被命名为分支。

  • 考虑到这一点,并将其与您关于稳定、质量保证 (QA) 和开发 (dev) 流程的想法相结合,以下是我的建议:
  • 每个项目一个名为“稳定”的存储库。每个项目有几个“QA”存储库,每个项目有大量“开发”。
  • 标签和名称分支仅由“稳定”存储库定义,或最终由“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)

    关于svn - 为 SVN 用户推荐的 Mercurial 存储库/文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2367453/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com