Ren*_*rop 2 mercurial sparse-checkout mercurial-extension
在2015年的F8会议视频(从8:40开始)中,他们谈到了使用Mercurial和Facebook上的单个存储库的优势.
这在实践中如何运作?使用Mercurial,我可以签出一个子目录(住在SVN)吗?如果是这样,怎么样?我需要一个Facebook的善变扩展此
从您的问题来看,目前尚不清楚您是在寻找工作流程(monorepo与多重回购辩论),还是在寻找庞大代码库的性能和扩展能力.
对于工作流程,我建议使用Google搜索monorepo.它有其优点和缺点,您需要了解您的情况和当前的工作流程来决定.对于性能和扩展,请继续阅读.
想法remotefilelog是不检查一个子目录(正如你所提到的),想法是结帐一切.为了以有效的方式做到这一点,您需要Facebook积极开发的两个扩展:
hg clone和hg pull时间.hgwatchman,它现在是mercurial核心的一部分).这大大减少了本地操作的时间,例如hg status.请注意,fsmonitor它独立于remotefilelog.您可以开始尝试这一点,因为它不需要在服务器端进行任何设置.使用最近的mercurial(我强烈建议),您可以使用CommandServer + CHg减少 Python解释器的额外启动时间.
一些额外的说明:
fsmonitor.它工作得很好,在巨大的回购时间hg status从10秒减少到不到1秒(这个1秒的大部分是Python启动时间,见上文CHg).如果您的存储库非常庞大,您可能需要微调一些inotify内核参数(或MacOSX上的等效参数).该fsmonitor文档中有你需要的所有信息.remotefilelog,虽然我读了我发现的一切,但我确信它有效.根据开发的完成方式(每个人总是有互联网连接,组织是否有自己的主回购)可能有一个警告:它将分散的部分转换hg为集中式VCS,如svn:通常可以离线完成的一些操作(例如:hg log和hg update过去的第一个变更集)现在需要连接到主存储库.remotefilelog,我广泛使用了largefiles一个巨大的回购扩展.remotefilelog对于那些想要在hg不花时间了解其工作原理的情况下完成任务的用户来说,它具有相同的缺点和一些令人困惑的角落案例.如果我要管理另一个巨大的回购,我会使用,remotefilelog而不是largefiles,虽然他们的用例不是真的相同.subrepositories(doc1,doc2).问题是它会根据您在源树中的位置更改hg的行为.同样,如果开发人员不关心真正理解hg如何工作,那将会太令人困惑.附加信息:
mercurial facebook.