13

我正在尝试在我的 Mercurial 项目存储库中为项目的依赖项设置子存储库。但是当我尝试提交.hgsub文件时,我不断收到此错误:

abort: commit with new subrepo lib/dependency-dir excluded

细节:

在我的项目的 Mercurial 存储库目录(在顶层)中,我有一个子目录 ,lib/它将包含我的依赖项。

碰巧我的所有依赖项都存在于github 上,在那里我分叉了每个库来创建,例如https://github.com/mygithubaccount/forked-dependency

我创建了一个.hgsub文件并将其添加到存储库(也在顶层)。它包含如下条目(我尝试如下单独隔离每个条目;它似乎没有任何区别)

lib/dependency-dir = [git]https://github.com/mygithubaccount/forked-dependency.git

然后我做了以下,从我的项目存储库的工作目录开始:

$ cd lib
$ git clone https://github.com/mygithubaccount/forked-dependency.git dependency-dir
$ cd ..
$ hg commit .hgsub
abort: commit with new subrepo lib/dependency-dir excluded

任何想法我做错了什么?

4

8 回答 8

15

我完成这项工作的唯一方法是在不指定 .hgsub 文件的情况下提交

hg 提交 -m “消息”

于 2013-11-19T19:16:29.300 回答
3

我必须通过在提交命令中明确选择它们来同时提交 .hgsub 和新的子存储库。我避免了 hg commit all 因为我还有其他包含正在进行的工作的文件。

于 2014-12-29T13:28:15.227 回答
3

我只是通过先添加文件然后提交来解决问题:

$ hg add .hgsub
...
$ hg commit .hgsub
于 2013-07-18T20:36:30.030 回答
2

我也有这个问题。我不确定它是否符合您的情况,但我试图将子存储库添加到新的存储库中。一旦我添加了其他文件并提交了它们,我就可以添加带有子存储库的 .hgsub 文件并提交它而不会出现此错误。

于 2013-06-06T10:28:43.497 回答
1

对我来说,问题是git不在我的系统路径上。添加它允许我提交我的 git 子存储库(请注意,我必须重新启动 TortoiseHg 工作台才能获得更新的系统路径)。

于 2013-11-10T18:36:18.617 回答
1

当我遇到同样的问题时,我发现了你的问题。我使用了 TortoiseHG,它给了我同样的错误。这里的解决方案对我来说毫无用处,但我找到了答案。

就我而言,问题出在 HG 版本中:我发现我的 TortoiseHG 使用的是 hg ver。2.5. 当我使用 hg ver 3.9 .hgsub 时正确提交。

PS我明白我的回答对你没有帮助,但我希望它能帮助像我这样的其他人。

于 2018-04-05T09:14:34.843 回答
0

当我遇到这个问题时,问题是我在 subrepo 目录的路径中有两个斜杠。

于 2015-02-11T08:57:23.803 回答
0

如果 subrepo 的文件夹名称与其在 .hgsub 文件中的路径之间存在大小写差异,这也会触发此错误消息。

我通过从另一个具有相同文件夹结构的 repo 复制 .​​hgsub 来体验这一点,但是新 repo 使用标题大小写作为文件夹名称,而原始 repo 中的文件夹都是小写的。

更改 .hgsub 或文件夹名称本身解决了这个问题。

于 2016-08-31T14:55:46.560 回答