【问题标题】:Mercurial (hg) update error, abort: No such file or directoryMercurial (hg) 更新错误,中止:没有这样的文件或目录
【发布时间】:2011-10-19 16:00:34
【问题描述】:

我无法在我的机器上更新 mercurial 存储库。更新时出现以下错误hg up --traceback:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 87, in _runcatch
    return _dispatch(req)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 679, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 454, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 733, in _runcommand
    return checkargs()
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 687, in checkargs
    return cmdfunc()
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 676, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 385, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/commands.py", line 5131, in update
    ret = hg.update(repo, rev)
  File "/usr/lib/python2.7/dist-packages/mercurial/hg.py", line 395, in update
    stats = mergemod.update(repo, node, False, False, None)
  File "/usr/lib/python2.7/dist-packages/mercurial/merge.py", line 554, in update
    stats = applyupdates(repo, action, wc, p2, pa, overwrite)
  File "/usr/lib/python2.7/dist-packages/mercurial/merge.py", line 329, in applyupdates
    subrepo.submerge(repo, wctx, mctx, wctx.ancestor(mctx), overwrite)
  File "/usr/lib/python2.7/dist-packages/mercurial/subrepo.py", line 156, in submerge
    mctx.sub(s).get(r)
  File "/usr/lib/python2.7/dist-packages/mercurial/subrepo.py", line 668, in get
    if self._svnversion >= (1, 5):
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 169, in __get__
    result = self.func(obj)
  File "/usr/lib/python2.7/dist-packages/mercurial/subrepo.py", line 567, in _svnversion
    output, err = self._svncommand(['--version'], filename=None)
  File "/usr/lib/python2.7/dist-packages/mercurial/subrepo.py", line 555, in _svncommand
    universal_newlines=True, env=env, **extrakw)
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1239, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
abort: No such file or directory

我尝试执行 rm -rf myrepo 然后执行 hg clone ssh://hg@bitbucket.org/myrepo 但该命令正确下载了 repo 但当 hg 尝试将 repo 更新为分支默认值时出现相同的错误,更具体地说,我得到了这个:

destination directory: foo
requesting all changes
adding changesets
adding manifests
adding file changes
added 6270 changesets with 20990 changes to 3682 files
updating to branch default
abort: No such file or directory

使用 trackback 时,我收到与之前类似的错误。我什至尝试在我的系统上重新安装 mercurial,但没有任何运气。

你能指出是什么问题吗?回购头似乎没问题,(我可以在其他机器上使用cloneupdate),并且我可以在我的系统上使用cloneupdate 其他hg 回购。这与子回购有什么关系吗?引用暗示了这一点。

我的系统详细信息:32 位 Ubuntu 11.10,运行 mercurial 版本 1.9.1。

【问题讨论】:

  • 这些机器运行的是什么操作系统?您尝试克隆到的目录结构有多深?此外,Mercurial 用户列表可能是解决此类问题的更好场所:mercurial.selenic.com/wiki/MailingLists#The_Mercurial_list
  • 感谢 Laurens,这是我的系统配置:32 位 Ubuntu 11.10,运行 mercurial 1.9.1。我不知道 dir 结构的深度,但我想它小于 15。我也会将其发布在 hg 邮件列表中。

标签: mercurial mercurial-subrepos


【解决方案1】:

看来源repo有一个svn subrepo,而你没有安装subversion客户端(或者svn不在搜索路径中)。

【讨论】:

  • 谢谢!你说的对!我只需要安装svn。再次感谢。
  • 您应该在 Mercurial 错误跟踪器中为此提交一张票!可以更好地处理该错误。 mercurial.selenic.com/wiki/BugTracker
  • 它刚刚得到修复。 Mercurial 2.0 应该有更好的错误信息。
  • 哇劳伦斯,谢谢,我刚看到这条消息,很抱歉没有这样做。但感谢您承担责任
  • Mercurial 2.1.1 如果有 git subrepo 并且没有安装 git 也会有同样的问题。
猜你喜欢
  • 2013-07-26
  • 2023-02-06
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多