由于文件名的原因,Mercurial无法更新到修订版

由于文件名的原因,Mercurial无法更新到修订版,mercurial,Mercurial,我有一个存储库,我正在努力工作。不幸的是,当我更新到感兴趣的修订版时,它会失败并显示消息 abort: Illegal byte sequence: /Users/<user>/Projects/P/infusion16/Standings ? Kattis, Infusion Programming Contest 2016.pdf 看起来它有某种文件名中不支持的字符?我检查环境LC\u CTYPE和LANG都设置为en\u US.UTF-8 在这种情况下可以做些什么?我可能没有

我有一个存储库,我正在努力工作。不幸的是,当我
更新
到感兴趣的修订版时,它会失败并显示消息

abort: Illegal byte sequence: /Users/<user>/Projects/P/infusion16/Standings ? Kattis, Infusion Programming Contest 2016.pdf
看起来它有某种文件名中不支持的字符?我检查环境
LC\u CTYPE
LANG
都设置为
en\u US.UTF-8


在这种情况下可以做些什么?我可能没有这个文件,或者改名了它?另一个失败的代码<更新> /代码>发生在进程的中间,所以我没有工作目录中的所有文件。

我首先运行<代码> Hg man < /Cord>获取相关的路径名,然后通过:<代码> HG CAT路径名< /COD>

来提取该文件的内容。
然后,您可以尝试
hg revert--all--exclude PATHNAME
提取所有其他文件名(假设主机操作系统接受所有其他文件名)。

您使用的是哪个mercurial版本?mercurial分布式SCM(版本4.5)。通过pip作为python模块安装。显然,Mercurial代码中存在使用不推荐的功能(
utils.posixfile
)的问题。我想知道是否有补救措施或解决办法。由于您使用的是mercurial的最新版本,我建议您在mercurial的bugzilla上提交一个bug:bz.mercurial-scm.org。将工作树移动到Linux系统。macOS不接受非UTF-8文件名。即使使用--exclude也不起作用。错误消息相同
File "/Users/evgeniy.sharapov/.pyenv/versions/2.7.14/lib/python2.7/site-packages/mercurial/merge.py", line 1381, in batchget
    atomictemp=atomictemp)
File "/Users/evgeniy.sharapov/.pyenv/versions/2.7.14/lib/python2.7/site-packages/mercurial/context.py", line 1969, in write
    **kwargs)
File "/Users/evgeniy.sharapov/.pyenv/versions/2.7.14/lib/python2.7/site-packages/mercurial/localrepo.py", line 1115, in wwrite
    **kwargs)
File "/Users/evgeniy.sharapov/.pyenv/versions/2.7.14/lib/python2.7/site-packages/mercurial/vfs.py", line 87, in write
    with self(path, 'wb', backgroundclose=backgroundclose, **kwargs) as fp:
File "/Users/evgeniy.sharapov/.pyenv/versions/2.7.14/lib/python2.7/site-packages/mercurial/vfs.py", line 409, in __call__
  fp = util.posixfile(f, mode)

IOError: [Errno 92] Illegal byte sequence: '/Users/<user>/Projects/Puzzles/infusion16/Standings \x96 Kattis, Infusion Programming Contest 2016.pdf'
abort: Illegal byte sequence: /Users/<user>/Projects/Puzzles/infusion16/Standings ? Kattis, Infusion Programming Contest 2016.pdf