3

自从几年以来,我就是一个 hg 用户,对此我很高兴!

我必须像以前一样开始一个项目。这个想法是开发一个具有批处理模式和 GUI 的软件。

因此批处理和 GUI 模式都有共同的来源,但每个来源也将包含特定的来源。而且,基本上,我希望我的同事能够克隆 GUI 版本,对其进行提交更改。然后,我希望能够将他们对公共文件的更改与批处理版本合并。

我该如何处理?

由于我一直在阅读有关此主题的内容,因此我非常感谢您的帮助!

谢谢你。比努阿

4

1 回答 1

2

作为 subrepos 的创建者,我强烈建议不要为此使用 subrepos。

虽然 subrepos 可用于将较大的项目分解为较小的部分,但这样做的好处往往被 subrepos 所涉及的额外复杂性和脆弱性所抵消。除非你的项目真的很大,否则为了简单起见,你应该坚持一个项目 repo。

那么 subrepos 有什么用呢?Subrepos 最适合管理其他独立项目的集合。例如,假设您正在构建一个包含现有 SCM 的大型 GUI 工具。我建议您将其结构如下:

scm-gui-build/ <- master build repo with subrepos:
  scm-gui/     <- independent repo for all the code in your GUI tool
  scm/         <- repo for the third-party SCM itself
  gui-toolkit/ <- a third-party GUI toolkit you depend on
  extensions/  <- some third-party extension to bundle
    extension-foo/  

在这里,您在一个普通的旧仓库 (scm-gui) 中完成所有工作,但使用更高级别的主仓库来管理构建/打包/版本控制/标记/发布整个集合。主scm-gui-build存储库只是其他正常存储库的一个薄包装器,这意味着如果出现问题(例如某个存储库的 URL 脱机),您可以继续在项目中工作而不会出现问题。

(另见:https ://www.mercurial-scm.org/wiki/Subrepository#Recommendations )

于 2011-10-08T19:05:32.033 回答