在名称有美元符号的目录中创建mercurial repo

时间:2017-11-11 04:15:42

标签: windows mercurial non-alphanumeric

我正在尝试在名称中包含美元符号的目录中创建一个mercurial存储库。这是我在windows 10 cmd.exe上使用mercurial 4.1.3获得的等效简化示例:

C:\test\dir1>hg init

C:\test\dir1>hg status

C:\test\dir1>cd ../dir$$1

C:\test\dir$$1>hg init

C:\test\dir$$1>hg status 
abort: repository C:\test\dir$$1 not found!

所以我希望这很清楚,唯一的区别似乎是第二个目录名中的美元符号。提前谢谢!

2 个答案:

答案 0 :(得分:1)

Mercurial似乎将美元符号视为环境变量逃逸:

C:\test>set X=abc

C:\test>echo $X          # Not the shell expanding it, that would be %X%.
$X

C:\test>hg init $X

C:\test>dir
 Volume in drive C has no label.
 Volume Serial Number is CE8B-D448

 Directory of C:\test

11/10/2017  09:27 PM    <DIR>          .
11/10/2017  09:27 PM    <DIR>          ..
11/10/2017  09:27 PM    <DIR>          abc
               0 File(s)              0 bytes
               3 Dir(s)  53,899,231,232 bytes free

Mercurial已将$X扩展为环境变量。也:

C:\test>hg init dir$$x

C:\test>dir
 Volume in drive C has no label.
 Volume Serial Number is CE8B-D448

 Directory of C:\test

11/10/2017  09:30 PM    <DIR>          .
11/10/2017  09:30 PM    <DIR>          ..
11/10/2017  09:30 PM    <DIR>          dir$x
               0 File(s)              0 bytes
               3 Dir(s)  53,899,091,968 bytes free

两个美元符号插入一美元符号。当您位于名为dir$$x的目录中时,Mercurial正在使用dir$x作为名称。我找到了hg -R. status的解决方法,但最好避免使用美元符号。

答案 1 :(得分:0)

这已作为Mercurial错误输入:https://bz.mercurial-scm.org/show_bug.cgi?id=5739