我正在尝试在我的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
任何想法我做错了什么?
答案 0 :(得分:15)
我完成这项工作的唯一方法是在不指定.hgsub文件的情况下提交
hg commit -m“message”
答案 1 :(得分:3)
我刚刚通过添加文件来解决问题,然后提交:
$ hg add .hgsub
...
$ hg commit .hgsub
答案 2 :(得分:3)
我必须通过在commit命令中显式选择它们来同时提交.hgsub和新的子存储库。我避免了hg提交,因为我有其他文件包含正在进行的工作。
答案 3 :(得分:2)
我也有这个问题。我不确定它是否符合您的情况,但我试图将子存储库添加到新的存储库中。一旦我添加了其他文件并提交了它们,我就可以使用子目录添加.hgsub文件并提交它而不会出现此错误。
答案 4 :(得分:1)
对我来说,问题是git
不在我的系统路径上。添加它允许我提交我的git子存储库(注意我必须重新启动TortoiseHg工作台才能获得更新的系统路径)。
答案 5 :(得分:1)
当我遇到同样的问题时,我发现了你的问题。我使用了TortoiseHG,它给了我同样的错误。这里的解决方案对我来说毫无用处,但我找到了答案。
就我而言,问题出现在HG版本中: 我发现我的TortoiseHG使用的是hg ver。 2.5。 当我使用hg ver 3.9 .hgsub正确提交时。
P.S。 我明白我的答案对你没有帮助,但我希望它能帮助像我这样的其他人。
答案 6 :(得分:0)
当我遇到这个问题时,问题是我在subrepo目录的路径中有两个斜杠。
答案 7 :(得分:0)
如果subrepo的文件夹名称与.hgsub文件中的路径之间存在大小写差异,则还会触发此错误消息。
我通过从具有相同文件夹结构的另一个repo复制.hgsub来体验这一点,但是新的repo使用了文件夹名称的标题大小写,而原始repo中的文件夹都是小写。
更改.hgsub或文件夹名称本身就解决了这个问题。