-1

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

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!

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

4

2 回答 2

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

于 2017-11-11T05:36:22.657 回答
0

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

于 2017-11-12T15:28:24.043 回答