“hg convert” 期间系统调用中断

“hg convert” 期间系统调用中断

当我运行“hg convert”将 Subversion 存储库转换为 Mercurial 时,出现此错误:

fetching revision log for "/trunk" from 1538 to 0
run hg sink post-conversion action
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 46, in _runcatch
    return _dispatch(ui, args)
  File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 454, in _dispatch
    return runcommand(lui, repo, cmd, fullargs, ui, options, d)
  File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 324, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 505, in _runcommand
    return checkargs()
  File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 459, in checkargs
    return cmdfunc()
  File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 453, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib/pymodules/python2.6/mercurial/util.py", line 386, in check
    return func(*args, **kwargs)
  File "/usr/lib/pymodules/python2.6/hgext/convert/__init__.py", line 229, in convert
    return convcmd.convert(ui, src, dest, revmapfile, **opts)
  File "/usr/lib/pymodules/python2.6/hgext/convert/convcmd.py", line 398, in convert
    c.convert(sortmode)
  File "/usr/lib/pymodules/python2.6/hgext/convert/convcmd.py", line 312, in convert
    parents = self.walktree(heads)
  File "/usr/lib/pymodules/python2.6/hgext/convert/convcmd.py", line 109, in walktree
    commit = self.cachecommit(n)
  File "/usr/lib/pymodules/python2.6/hgext/convert/convcmd.py", line 267, in cachecommit
    commit = self.source.getcommit(rev)
  File "/usr/lib/pymodules/python2.6/hgext/convert/subversion.py", line 433, in getcommit
    self._fetch_revisions(revnum, stop)
  File "/usr/lib/pymodules/python2.6/hgext/convert/subversion.py", line 814, in _fetch_revisions
    for entry in stream:
  File "/usr/lib/pymodules/python2.6/hgext/convert/subversion.py", line 122, in __iter__
    entry = pickle.load(self._stdout)
IOError: [Errno 4] Interrupted system call
abort: Interrupted system call

显然,可以重新开始读取,EINTR但我该怎么做呢pickle.load()?另外我想知道该信号来自哪里?我怀疑是 SIGCHILD,但不应该popen()处理它?

答案1

这似乎是 Mercurial 的一个错误。我不知道为什么它只骚扰我的安装。我的错误报告在这里:问题2196

该漏洞随附有针对 Mercurial 1.6 的补丁。

相关内容