使用:Windows,TortoiseHg 4.4
我刚刚开始将Mercurial视为版本控制的路线,而不是我们(不那么)精彩的TFS 2010系统。我们的想法是使用我们当前的项目架构允许更灵活的分支,并使合并更容易。
我创建了一个类似下面的子仓库结构:
+Main
++SharedProjects
++Country1
++Country2
(+ = repo,++ = subrepo)
这在Main中创建了包含以下内容的.hgsub:
SharedProjects = SharedProjects
Country1 = Country1
Country2 = Country2
查看hg Workbench,我可以在Main下看到正确的项目文件夹层次结构。
问题:
当我将文件添加到Country1文件夹并提交Main文件夹时,不会提交任何内容。但是如果我提交Country1(sub)repo,它就会提交。
显然,这会导致子项目下存在多个subrepos的问题,并且会有很大的风险,因此会遗漏更改。
不确定我是否正在尝试做一些我不应该做的事情,或者它是否不起作用并且有一个技巧呢?已搜索并发现了相当多的旧问题,但这些修复都没有奏效:
我试过了:
答案 0 :(得分:0)
问题:
当我将文件添加到Country1文件夹并提交Main文件夹时, 没有什么是承诺的。但是,如果我提交Country1(sub)repo它 提交就好了。
显然这会导致多个子站点出现问题 在subrepos下存在,并且它将变得非常冒险 错过了。
不确定我是否正在尝试做一些我不应该做的事情,或者它是否只是 没有工作,有一个技巧吗?
这是它的工作方式。
Country1.file
是存储库Country1
的可靠性。
Main
存储库只是一组子存储库版本,Main
中的提交是子存储库中提交的链接。
例如,您可以:
Main
1.0只是指向SharedProjects
1.1,Country1
1.2和Country2
1.5的链接。Main
2.0为SharedProjects
1.99,Country1
1.22和Country2
2.111。现在,如果您的文件不在子存储库下,则提交将位于存储库Main
中。
我不建议使用多个级别的子存储库。 也许子库不是您项目的最佳方式。
您可以拥有一个存储库,并将Country1存储在名为Country1
的分支中,然后将分支中的Country2存储Country2
,等等。每个文件夹一个分支。然后你可以将它们全部合并到分支default
(主分支)。