我从几年前就是一名hg用户,我对此感到高兴!
我必须像以前从未做过的那样开始一个项目。 我们的想法是开发一个具有批处理模式和GUI的软件。
因此,批处理和GUI模式都会有共同的来源,但每个都会包含特定的来源。 而且,基本上,我希望我的同事能够克隆GUI版本,并在其上进行提交更改。 然后,我希望能够将他们对公共文件的更改与批处理版本合并。
我该如何处理?
由于我一直在阅读这个主题,我真的很感激任何帮助!!
谢谢。 binoua
答案 0 :(得分:2)
作为subrepos的创建者,我强烈建议反对使用subrepos。
虽然subrepos可用于将较大的项目拆分为较小的部分,但是这种情况往往超过了subrepos所涉及的额外复杂性和脆弱性。除非您的项目真的大,否则您应该只为了简单而坚持使用一个项目仓库。
那么什么是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
仓库只是围绕其他正常仓库的薄包装,这意味着如果某些东西中断(就像其中一个仓库的网站脱机),您可以毫无问题地继续在您的项目中工作。
(另见:https://www.mercurial-scm.org/wiki/Subrepository#Recommendations)