当涉及到 Hg subrepos 时,报告修订历史和单个文件状态会变得有点复杂。
修订记录
子存储库的修订历史记录在父存储库中不可见。当您考虑它时,这是有道理的,因为每个子存储库实际上是一个不同的存储库 - 确实没有很好的方法来覆盖两个单独的历史,这些信息也不会很有用。从命令行,您必须导航到每个 subrepo 目录并执行 ahg log
以查看历史记录。在 TortoiseHg 2.XX 中,在提交视图中,您可以双击任何标有 的S
内容以在 TortoiseHg GUI 中打开该子存储库。
局部修改
可以从父 repo 中看到对 subrepos 的本地修改,但每个命令的方式不一定相同。例如,如果我有一个看起来像这样的存储库(子存储库在哪里sub
):
/project
|
----> foo.c
|
----> sub/
|
----> bar.c
|
----> more.c
如果我同时修改 bar.c 和 foo.c 然后hg status
从命令行执行,我将看到以下内容:
> hg status
M foo.c
但是,如果我添加 subrepo 参数-S
,我会看到:
> hg status -S
M foo.c
M sub/bar.c
如果我使用 TortoiseHg v2.XX,它会将 foo.c 标记为已修改,并将标记sub
为已修改,但我必须双击子存储库才能查看实际的文件修改。
转换说明:
就执行转换本身而言 - 查看转换存储库扩展。如果您正在执行一次性转换,然后放弃 SVN 存储库,这可能就是您所需要的。如果您要尝试在 SVN 和 HG 之间来回工作,您可能会遇到更多问题。
Something I've done successfully in the past is overlay a Hg repository on top of an existing repository. I'm not sure if this would work well for SVN and Hg, however.