几年前我是 hg 用户,我很高兴!
我必须像以前一样开始一个项目。
这个想法是开发一个具有批处理模式和 GUI 的软件。
因此,批处理模式和 GUI 模式都有共同的来源,但每一种都将包含特定的来源。
而且,基本上,我希望我的同事能够克隆 GUI 版本,对其进行提交更改。
然后,我希望能够将他们对公共(public)文件的更改与批处理版本合并。
我该如何处理?
由于我一直在阅读有关此主题的内容,因此非常感谢您的帮助!!
谢谢你。
比努阿
最佳答案
作为 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
存储库只是其他普通存储库的薄包装,这意味着如果出现问题(例如存储库的 URL 之一脱机),您可以继续在您的项目中工作而不会出现问题。(另见: https://www.mercurial-scm.org/wiki/Subrepository#Recommendations )
关于Mercurial 公共(public)/本地文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7696480/