因为我用公司的 SVN ,最近改的代码比较多,但是还没有到能提交的地步,这么多问题的代码一提交估计别人都要发飚了。

但是辛辛苦苦写了几天的代码,还没提交或是备份,心里很不踏实;弄 SVN 分支也太麻烦了一些,于是就想用 Hg 在本地 clone 一个分支出来,弄个本地版本慢慢改,自己随时可以提交版本,要备份也只要到其它机器上 clone 一个。理想是美好的,操作是方便的!

上网找了找,安装 hgsubversion 插件后,可以从 SVN 里检出文档和代码,我用的是如下命令:

$ hg clone svn+https://xxxxxx  localtest

很奇怪的是,在检出历史版本信息后即提示获取文件已经完成,可是 localtest 目录下只有 .hg 目录,怎么会没有源代码目录呢?看来,过程是曲折嘀~~

是我漏掉了某一步没有做么?可是按照手册上的说明,我明明已经做完了所有的事情。

最后,反复 Google 及提问后,终于在 StackOverflow 上问到了答案

  • 原来 Hg 对 utf8 字符串的支持并不好,如果你的 SVN 目录里有中文文件名的话,则需要安装 fixutf8 插件来解决这个问题。

采用 Hg 的插件安装方法,即可安装 fixutf8 插件,不过要注意的是,在配置这个插件到 Hg 的配置文件时,一定要像下面这样写全引用 fixutf8.py 脚本的路径:

[extensions]
fixutf8 = D:\Program Files\TortoiseHgExtentions\hg-fixutf8\fixutf8.py

这样,你就可以把 SVN 里的文件全部导出,在本地建一个 Hg 分支,为所欲为了。

PS: Hg 怎么会不认得 utf-8 编码的文件名呢?都什么年代了,sign~因为这个问题,浪费了我差不多一下午的时间