TortoiseHg 4.4是否适用于在subrepos中提交新项目?

时间:2017-02-07 12:33:48

标签: mercurial commit tortoisehg mercurial-subrepos

使用: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的问题,并且会有很大的风险,因此会遗漏更改。

不确定我是否正在尝试做一些我不应该做的事情,或者它是否不起作用并且有一个技巧呢?已搜索并发现了相当多的旧问题,但这些修复都没有奏效:

我试过了:

  • 将./添加到每个.hgsub路径的前面
  • 确保在提交对话框中检查'递归'
  • 将'recurserepos = true'添加到mercurial.ini
  • 确保文件确实提交,如果我直接提交子仓库
  • 命令行提交来自Main'hg commit -S -m“test cmd line commit”'得到结果'没有改变'

1 个答案:

答案 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(主分支)。