路径名中的字符转义导致混淆

时间:2014-08-17 01:19:56

标签: macos mercurial osx-mavericks

热门目录在hg status中始终显示为未跟踪。

? .

hg add .会返回奇怪的结果:

adding .
abort: '\n' and '\r' disallowed in filenames: '.\r'

hg verify说没问题:

checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
7044 files, 8094 changesets, 50081 total revisions

来自同一存储库的其他克隆不会出现此行为。我尝试了hg 3.0.1和2.7.2。知道为什么会这样吗?

1 个答案:

答案 0 :(得分:3)

看起来你实际上有一个文件,其名称是一个点后跟一个回车符。注意:disallowed in filenames: '.\r'

我在这里模拟:

$ hg init Thomas
$ cd Thomas/
$ echo -e '.\r'
.
$ touch $(echo -e '.\r')
$ ls -A
.?  .hg/
$ hg status
? .
$ hg add .
adding .
abort: '\n' and '\r' disallowed in filenames: '.\r'

您有一个名字非常糟糕的文件,并且它不是由Mercurial创建的。