我们最近从 Perforce 迁移到 Mercurial,并且非常喜欢它!
一个小问题:经过大量研究,我们无法弄清楚如何将存储库中的特殊目录映射到客户端上的某个特殊位置。这是我们的 hg 存储库的示例:
/foo/source files
/bar/source files
/build
/macosx/mac make files
/win/windows make files
通过 Perforce,我们使用客户端规范映射将//depot/build/macosx/... 映射到 Mac 客户端上的/build/...,以及//depot/build/win/...到 Windows 开发盒上的/build/...。目录 foo 和 bar 按原样同步。/foo 和/bar 中的 Makefile 假定我们的构建 makefile 位于/build 中,并且我们希望保持它们原样。最终的客户端文件集应如下所示:
/foo/source files
/bar/source files
/build/client specific make files
我读过有关子存储库的内容,但此解决方案似乎并不特定于客户。
任何解决此问题的想法都将非常感激!
最佳答案
您无法使用 Mercurial 仅 checkout 存储库的部分内容。
您总是会得到一个包含所有内容的克隆,并且工作目录也将包含所有内容。
使用 Mercurial,您应该努力为 1 个项目拥有 1 个存储库,以便您获得的所有内容在逻辑上属于在一起,然后您不应该只需要其中的一部分。
这也意味着 Mercurial 存储库中的任何目录结构将始终与磁盘上的结构完全匹配。
关于mercurial - Perforce 与 Mercurial 的客户端规范映射类似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4155319/