2011-10-08 34 views
3

我是一个hg用户,因为一对夫妇多年,我为此感到高兴!Mercurial通用/本地文件

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

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

我该如何处理?

由于我一直在阅读这个主题,我非常感谢任何帮助!

谢谢。 binoua

+0

如果你是绝对反对的所有来源混合在一个项目中,并管理与多个项目文件的差别(我不知道你使用的是哪种项目系统),你有没有考虑过子回购?将所有常用文件放在一个子仓库中,并创建两个新仓库,包括普通仓库? –

+0

@Lasse:走过标签,我想他已经只想知道它是否会/如何工作。 –

回答

2

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

尽管subrepos可用于将较大的项目分解为较小的部分,但子部分涉及的额外复杂性和脆弱性通常会超过这些好处。除非你的项目将会是真的大,否则你应该坚持一个项目回购简单。

那么,subrepos是什么呢? Subrepos最适合管理其他独立项目的集合。比如说,假设你正在构建一个大型的GUI工具来包装现有的SCM。我建议你构建它是这样的:

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 repo只是其他正常回购的简单包装,这意味着如果某件事情中断(比如其中一个回购网址脱机),您可以继续在您的项目中正常工作。

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

+0

谢谢你的回答。所以,如果我理解你,没有适当的方法能够克隆只有GUI回购或只批量回购? – blaurent

+0

这不是我所说的。再读第二段。你可以把你的项目分解成subrepos,但这并不意味着你应该这样做。 – mpm