1. 问题
Atlassian SourceTree是一款免费的Git/Mercurial源代码管理系统客户端工具,最新版本为1.8.1.0。
如果你安装了SourceTree并且使用的是中文版的Hg客户端的话,就会发现SourceTree有个要命的问题:Mercurial(HG)无法启用。
在你首次启动或尝试启用Mercurial支持时,它会告诉你未找到客户端,然后让你选择一个操作。
这几个选项其实都没用,不管你是下载了还是浏览了什么的,始终反复出现。选项中,Mercurial也是被禁用的,如果你试图启用,那么就会掉入同样的死循环中。
2. 问题原因
出现这个问题的原因是,SourceTree不仅要求配置Mercurial路径,还对版本进行了校验。校验版本使用的是 hg.exe --version
来获得版本号的。
然而很可惜,中文语言时,HG.exe 的输出是这样的。
从图中可以看到,版本号是中文字符串(版本 3.2.3)。参考SourceTree获得版本号的代码。
可见,根本没考虑非英文的场景……
所以导致始终没有匹配版本号的客户端,也就无法启用。
3. 解决
原因知道后,便很好办了。附件便是已经修复此判断的文件。将它们解压到SourceTree的安装目录(通常是 C:\Program Files (x86)\Atlassian\SourceTree\
)并覆盖现有文件,重开SourceTree即可看到Mercurial已经自动支持了。
补丁下载
仍然无法启动
用了之后打不开SourceTree了。。。。估计这个补丁是老版本的
新版本没有这个bug了啊。。所以就不需要用这个补丁了啊。
谢谢。终于找到了。