Mercurial子文件夹是否可以驻留在子文件夹中?

Mercurial子文件夹是否可以驻留在子文件夹中?,mercurial,mercurial-subrepos,subrepos,Mercurial,Mercurial Subrepos,Subrepos,多年来,我一直在我的.hgsub中使用以下行: setup/help = https://my.repo.com/manuals 它会将名为“manuals”的存储库放入另一个文件夹setup中的文件夹help。因此,我的父存储库结构如下所示: .hg setup |__help | |__.hg | .hgsub entering debugger - type c to continue starting hg or h for help --Call-- > /usr/lib6

多年来,我一直在我的
.hgsub
中使用以下行:

setup/help = https://my.repo.com/manuals
它会将名为“manuals”的存储库放入另一个文件夹
setup
中的文件夹
help
。因此,我的父存储库结构如下所示:

.hg
setup
|__help
|  |__.hg
|
.hgsub
entering debugger - type c to continue starting hg or h for help
--Call--
> /usr/lib64/python2.7/contextlib.py(21)__exit__()
-> def __exit__(self, type, value, traceback):
(Pdb)
这在我今天更新到Mercurial 4.9之前是没有问题的,现在它说:“subrepo路径包含非法组件:setup/help”,我甚至不能提交到主repo。Mercurial现在禁止这样做吗?是否有有效的
.hgsub
语法来实现此功能?我不想移动
help
成为主项目文件夹的直接子文件夹。我以前的Mercurial版本是4.5,它不像我在使用古老的工具

根据请求进行错误回溯:

Traceback (most recent call last):
  File "mercurial\scmutil.pyo", line 165, in callcatch
  File "mercurial\dispatch.pyo", line 367, in _runcatchfunc
  File "mercurial\dispatch.pyo", line 1021, in _dispatch
  File "mercurial\dispatch.pyo", line 756, in runcommand
  File "mercurial\dispatch.pyo", line 1030, in _runcommand
  File "mercurial\dispatch.pyo", line 1018, in <lambda>
  File "mercurial\util.pyo", line 1670, in check
  File "mercurial\commands.pyo", line 4621, in push
  File "mercurial\context.pyo", line 277, in sub
  File "mercurial\subrepo.pyo", line 164, in subrepo
  File "mercurial\subrepo.pyo", line 414, in __init__
Abort: subrepo path contains illegal component: setup/help
abort: subrepo path contains illegal component: setup/help
回溯(最近一次呼叫最后一次):
callcatch中第165行的文件“mercurial\scmutil.pyo”
文件“mercurial\dispatch.pyo”,第367行,在runcatchfunc中
文件“mercurial\dispatch.pyo”,第1021行,在\u dispatch中
文件“mercurial\dispatch.pyo”,第756行,在runcommand中
文件“mercurial\dispatch.pyo”,第1030行,在运行命令中
文件“mercurial\dispatch.pyo”,第1018行,在
检查文件“mercurial\util.pyo”,第1670行
文件“mercurial\commands.pyo”,第4621行,在push中
文件“mercurial\context.pyo”,第277行,子文件
subrepo中第164行的文件“mercurial\subrepo.pyo”
文件“mercurial\subrepo.pyo”,第414行,在_init中__
中止:子repo路径包含非法组件:设置/帮助
中止:子repo路径包含非法组件:设置/帮助

您对Python调试器有多大信心?这次可以使用
--debugger
启动命令

您可能会看到如下输出:

.hg
setup
|__help
|  |__.hg
|
.hgsub
entering debugger - type c to continue starting hg or h for help
--Call--
> /usr/lib64/python2.7/contextlib.py(21)__exit__()
-> def __exit__(self, type, value, traceback):
(Pdb)
输入
c
Enter
,直到看到与粘贴的回溯相同的回溯

在正确回溯时,可以使用
pp root
pp util.expandpath(root)
os.path.realpath(util.expandpath(root))
打印局部变量。我们应该能够通过这些变量的值找到问题的根源


要退出调试器,请输入
q
enter

我遇到了相同的错误,因此我克隆了mercurial存储库

该错误是在带标签的版本4.9 subrepo.py中引入的

大约一个月后,修订版41583(87a6e3c953e045d92147925fc71aad7c327fdbfd)被更正。 我在实际的默认分支上测试了它,再次工作


因此,不需要错误条目,我们只需等待下一版本。

这应该不是问题。您能分享一些关于当前设置和磁盘状态的更多信息吗?
setup/help
subrepo是否已克隆?你的设置有什么不寻常的地方吗?像
setup
setup/help
是一个符号链接吗?@BorisFeld:我已经有一个主回购的本地副本,包括所有子回购,只需更新Mercurial就会带来错误消息。回滚到4.6,该版本没有问题。Windows,没有符号链接,我想也没什么不寻常的。当你收到消息“subrepo路径包含非法组件:安装/帮助”时,你能试着运行你运行的任何hg命令,并添加“`--traceback`标志,这样我们就可以得到完整的回溯吗?@BorisFeld:将它添加到问题正文中。谢谢!遗憾的是,像这样的东西已经发布了,但是我敢肯定,我们都已经发布过好几次了。4.9.1版刚刚在Pypi上发布。