自从几年以来,我就是一个 hg 用户,对此我很高兴!
我必须像以前一样开始一个项目。这个想法是开发一个具有批处理模式和 GUI 的软件。
因此批处理和 GUI 模式都有共同的来源,但每个来源也将包含特定的来源。而且,基本上,我希望我的同事能够克隆 GUI 版本,对其进行提交更改。然后,我希望能够将他们对公共文件的更改与批处理版本合并。
我该如何处理?
由于我一直在阅读有关此主题的内容,因此我非常感谢您的帮助!
谢谢你。比努阿
自从几年以来,我就是一个 hg 用户,对此我很高兴!
我必须像以前一样开始一个项目。这个想法是开发一个具有批处理模式和 GUI 的软件。
因此批处理和 GUI 模式都有共同的来源,但每个来源也将包含特定的来源。而且,基本上,我希望我的同事能够克隆 GUI 版本,对其进行提交更改。然后,我希望能够将他们对公共文件的更改与批处理版本合并。
我该如何处理?
由于我一直在阅读有关此主题的内容,因此我非常感谢您的帮助!
谢谢你。比努阿
作为 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 )