我正在尝试使用mercurial的subrepo功能,使用mercurial eclipse插件\ tortoiseHG。
这是我采取的步骤:
/root
/root/sub1
,/root/sub2
).hgsub
中创建并添加了/root/.hgsub
文件,并将子回购的所有映射都放入其中/root
并选择create repository here
/root
内的所有文件并将它们添加到根目录然后,我使用import-> mercurial在eclipse中删除了根目录。
现在我看到所有的subrepos看起来好像是无版本的(eclipse文件资源管理器中相应文件夹旁边没有“orange cylinder”图标)。
此外,当我右键单击其中一个子目录时,我没有像通常那样获得“团队”菜单中的所有hg命令,使用根项目 - 没有“拉”,“推”等。 / p>
此外,当我更改了subrepo中的文件,然后“提交”了根项目时,它告诉我没有找到任何更改。
我在tortoiseHG中也看到了相同的行为 - 当我在/root
下浏览文件时,直接属于根目录的文件上有一个小图标(V标志),标记它们是版本控制的,而subrepos'文件夹未标记为此类。
是什么让我怀疑这是我的一些错误,就是这样 1.乌龟和日食都做同样的事情,因此不太可能成为任何一个中的错误 2.他们所做的看起来相当复杂,因此很可能不会发生错误 - 他们都会忽略.hgsub中的所有文件夹。如果相反的情况发生(所有子版本被视为主要仓库的常规文件夹而不是被视为无版本),我会认为这是由于不处理子版本而导致的错误。但很明显,这两个应用程序都承认.hgsub文件
我做错了什么,还是个错误?
答案 0 :(得分:2)
这是一个已知的错误:http://www.javaforge.com/issue/11871
答案 1 :(得分:1)
在第一步中,您是否在根目录中有实际嵌套的Mercurial回购?
将.hgsub
与“subdir = subdir
”指令放在一起不足以使subdir
成为子仓库,如果它只是主仓库的子目录(没有自己的.hg
)。
如文档中所述:
请注意,.hgsub中的行实际上必须存在嵌套存储库才能执行任何操作。
例如,如果不是创建本地嵌套存储库而是尝试链接到预先存在的远程存储库,则必须还要克隆该存储库:
$ echo nested = https://example.com/nested/repo/path > .hgsub
$ hg add .hgsub
$ hg clone https://example.com/nested/repo/path nested
如果有疑问,请始终尝试在命令行中重复执行操作(直到推送),以查看Hg CLI(命令行界面)会话可以显示的内容。
您可以尝试克隆当前的仓库,看看出了什么问题。
现在如果您确实已经嵌套了Hg repos,那么插件“MercurialEclipse”仍然可能不支持subRepos。
它在发行说明中根本没有提到subrepos
而TortoiseHg只在其latest 1.0 release中提及它们。
支持状态/提交工具中的子目录