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

creating mercurial repo in directory whose name has dollar signs

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

C:\test\dir1>hg init

C:\test\dir1>hg status

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

C:\test\dir$>hg init

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

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

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 的解决方法,但最好避免使用美元符号。

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