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

Posted

技术标签:

【中文标题】TortoiseHg 4.4 它是不是适用于在 subrepos 中提交新项目?【英文标题】:TortoiseHg 4.4 does it work for commiting new items in subrepos?TortoiseHg 4.4 它是否适用于在 subrepos 中提交新项目? 【发布时间】:2017-06-24 16:59:31 【问题描述】:

使用: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 它提交就好了。

显然这会导致子存储库下存在多个子存储库的问题,并且会非常冒险地提交更改将被错过。

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

我试过了:

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

【问题讨论】:

更多关于命令行测试的信息。我已经使用 HG 文档 (mercurial.aragost.com/kick-start/en/subrepositories) 中的演练创建了一个 mainrepo 和 subrepo (of mainrepo),但仍然无法提交在子级别上发生的更改。看起来 .hgsubstate 文件是使用所有 00000000 而不是 guid 创建的,但我尝试设置不同的相对路径(./subrepo,../subrepo)无济于事。所以看起来好像这就是问题所在,但目前我很难找到解决方案。 【参考方案1】:

问题:

当我将文件添加到 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 存储在名为 @987654335 的 分支 中@, 等等。每个文件夹一个分支。然后你可以将它们全部合并到分支default(主分支)。

【讨论】:

变得太乱了,我想我想要什么。最后决定使用 GIT 似乎更像是它可以满足我的要求(反正还没有抱怨过!)。谢谢。

以上是关于TortoiseHg 4.4 它是不是适用于在 subrepos 中提交新项目?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery.on() 是不是适用于在创建事件处理程序后添加的元素?

为啥它只适用于在 SVM 分类器中设置 kernel:'rbf'?

如何告诉 TortoiseHg 文件不是二进制文件?

TortoiseHG 提交非常慢

TortoiseHG:添加目录树中的所有文件

TortoiseHG:只拉动选定的变更集?