以前都是用 SVN 在办公室的局域网里面架一个中心服务器,来保存备份自己的一些文档及代码。定期把笔记本里的内容提交到中心服务器里,通过这种方式,有效地备份文档,同时,也减少了大量文档、代码同步的麻烦。可是这样做有几点比较痛苦:
最近尝试了用 Hg 来构建本地代码分支,还是蛮方便的,这种分布式的版本管理系统特别方便在不同的机器里同步文件。
使用 Hg 来做本地文档管理的主要步骤如下:
这个方法简单易用,但是缺点也很明显:没有访问权限控制,没有办法控制访问用户的授权问题(即用户名和密码校验),所以,在不需要的时候,赶紧关掉服务功能,免得被别人误检文档出来。由于这个服务的特殊性,在不安全的局域网里,最好不要开启本服务。
用这个方法,也可以很方便地 clone 代码到移动硬盘里作为备份,比你全新拷贝一份要快捷多了。
因为我用公司的 SVN ,最近改的代码比较多,但是还没有到能提交的地步,这么多问题的代码一提交估计别人都要发飚了。
但是辛辛苦苦写了几天的代码,还没提交或是备份,心里很不踏实;弄 SVN 分支也太麻烦了一些,于是就想用 Hg 在本地 clone 一个分支出来,弄个本地版本慢慢改,自己随时可以提交版本,要备份也只要到其它机器上 clone 一个。理想是美好的,操作是方便的!
上网找了找,安装 hgsubversion 插件后,可以从 SVN 里检出文档和代码,我用的是如下命令:
$ hg clone svn+https://xxxxxx localtest
很奇怪的是,在检出历史版本信息后即提示获取文件已经完成,可是 localtest 目录下只有 .hg 目录,怎么会没有源代码目录呢?看来,过程是曲折嘀~~
是我漏掉了某一步没有做么?可是按照手册上的说明,我明明已经做完了所有的事情。
最后,反复 Google 及提问后,终于在 StackOverflow 上问到了答案:
采用 Hg 的插件安装方法,即可安装 fixutf8 插件,不过要注意的是,在配置这个插件到 Hg 的配置文件时,一定要像下面这样写全引用 fixutf8.py 脚本的路径:
[extensions] fixutf8 = D:\Program Files\TortoiseHgExtentions\hg-fixutf8\fixutf8.py
这样,你就可以把 SVN 里的文件全部导出,在本地建一个 Hg 分支,为所欲为了。
PS: Hg 怎么会不认得 utf-8 编码的文件名呢?都什么年代了,sign~~~因为这个问题,浪费了我差不多一下午的时间~~