Posted on 29-04-2011
Filed Under (软件) by waterlin

以前都是用 SVN 在办公室的局域网里面架一个中心服务器,来保存备份自己的一些文档及代码。定期把笔记本里的内容提交到中心服务器里,通过这种方式,有效地备份文档,同时,也减少了大量文档、代码同步的麻烦。可是这样做有几点比较痛苦:

  1. 在出差的时候,没有办法提交代码,而 SVN 客户端也不方便做本地备份;
  2. 要是中心服务器坏了或是重装中心服务器了,又得重新配一下 SVN 服务器,比较麻烦,主要是时间上不一定有空;没有时间配置中心服务器,也就没有办法备份,导致内心极度不踏实。

最近尝试了用 Hg 来构建本地代码分支,还是蛮方便的,这种分布式的版本管理系统特别方便在不同的机器里同步文件。

使用 Hg 来做本地文档管理的主要步骤如下:

  1. 安装 TortoiseHg
  2. 创建本地分支
  3. 如需要拷贝到其它电脑的时候,在 TortoiseHg 里选择 Web Server(用命令的话是 $hg serve),默认地址为 http://localhost:8000
  4. 在其它机器上 clone http://your\_IP:8000 的文档下来即可。

这个方法简单易用,但是缺点也很明显:没有访问权限控制,没有办法控制访问用户的授权问题(即用户名和密码校验),所以,在不需要的时候,赶紧关掉服务功能,免得被别人误检文档出来。由于这个服务的特殊性,在不安全的局域网里,最好不要开启本服务。

用这个方法,也可以很方便地 clone 代码到移动硬盘里作为备份,比你全新拷贝一份要快捷多了。

(2) Comments    Read More   
Posted on 15-04-2011
Filed Under (技术) by waterlin

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

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

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

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

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

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

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

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

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

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

(3) Comments    Read More