Mercurial子目录可以驻留在子文件夹中吗?

时间:2019-02-25 14:09:34

标签: mercurial mercurial-subrepos subrepos

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

setup/help = https://my.repo.com/manuals

它将把名为“ manuals”的存储库放入另一个文件夹help内的文件夹setup中。所以我的父存储库结构如下:

.hg
setup
|__help
|  |__.hg
|
.hgsub

直到我今天更新到Mercurial 4.9之前,这没有问题,它现在显示:“ subrepo路径包含非法组件:setup / help”,我什至无法提交主仓库。水星现在禁止这样做吗?是否有有效的.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

2 个答案:

答案 0 :(得分:5)

我遇到了同样的错误,所以我克隆了Mercurial存储库...

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

大约一个月后,版本41583(87a6e3c953e045d92147925fc71aad7c327fdbfd)已得到纠正。 我在实际的默认分支上对其进行了测试,可以再次使用!

因此,无需输入错误,我们只需要等待下一个版本即可。

答案 1 :(得分:1)

您对Python调试器的信心如何?这次您可以使用--debugger启动命令。

您可能会看到这样的输出:

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)

输入center,直到看到与粘贴的相同的回溯。

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

要退出调试器,请输入qenter