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

时间:2018-03-13 14:36:31

标签: mercurial

我有一个我正在尝试处理的存储库。不幸的是,当我update对其感兴趣的修订版本失败时会显示消息

abort: Illegal byte sequence: /Users/<user>/Projects/P/infusion16/Standings ? Kattis, Infusion Programming Contest 2016.pdf

当我使用--traceback--debug选项运行更新时,会显示以下内容:

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

看起来它有一些文件名不支持的字符?我检查环境,LC_CTYPELANG都设置为en_US.UTF-8

在这种情况下可以做些什么?我可能没有这个文件或重命名?另一个问题是update中的失败发生在进程的中间,所以我没有工作目录中的所有文件。

1 个答案:

答案 0 :(得分:0)

我首先运行hg man以获取相关的PATHNAME,然后通过以下方式提取该文件的内容:hg cat PATHNAME

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