使用 HG 来做为代码管理工具

1 用 HG 配合 SVN 代码仓库进行版本管理

若是大家公司是用 SVN 做为代码仓库的话,确定常常碰到一个问题,没有写好的代码、没有通过仔细测试的代码,没有提交到代码仓库的信息,省得影响其余人的使用。 html

1.1 首先安装 hg

若是你是在 Windows 下,推荐使用 TortoiseHg 客户端,理由无需多说。 python

若是你要配合 Subversion 来使用 HG,官方提供了三种方式,各位能够根据本身的喜爱选择。咱们这里选择 hgsubversion 插件的方式服务器

1.2 TortoiseHg 几个使用小技巧

通常来讲,会使用 Subversion 的人,使用 TortoiseHg 都会上手特别快,这里有一份为 SVN 熟手准备的 Hg 简明教程svn

使用 TortoiseHg 有下面几个要迅速掌握的东西: 测试

  1. 点鼠标右键,点击 "Hg WorkBench" 能够得到详细的提交日志、版本信息,以及版本树示意图。
  2. 点鼠标右键,点击 "TortoiseHg" ==> "Synchronize",能够与服务器的数据进行同步,里面有若干个选项须要注意。
  3. 命令 $ hg commit 是用来提交代码到本地仓库,若是要同步修改到服务器,则须要用 $ hg push 命令才行。
  4. 常常在版本信息里出现的名词 tip 是指最新版本号,这个是内置的标签(tag)。
  5. 每个分支的最新版本号被统称为 head
  6. 若是已经提交了代码,须要回滚代码,则用命令 $ hg rollback ;若是你只是做了修改尚未提供代码到本地分支,则能够直接用命令 $ hg revert 去丢掉未提交的修改。

2 用 hgsubversion 插件来配合 SVN 使用 Hg

2.1 安装 hgsubversion 插件

安装 hgsubversion 插件,最简单的方法,不外乎直接把这个插件 clone 下来,官网上已经把标准的命令行方法讲清楚了。我这里截一张 Windows TortoiseHg 的图下来,看看: spa

./images/hgsubversion-download.png

配置 hgrc 文件,让 hg 找到 hgsubversion 这个插件。若是你用的是 TortoiseHg ,能够直接在 Hg Workbench 界面里的 setting 里进行操做,里面有一个大大的*编辑文件*按钮。 插件

在配置文件里,添加下面的内容。 命令行

[extensions]
hgsubversion = D:\Program Files\TortoiseHgExtentions\hgsubversion\hgsubversion

注意,这里要设置到子目录 hgsubversion 里,不然会提示找不到 hgsubversion 这个插件。 日志

若是你想看看这个插件是否安装好了,能够试一下这个命令: code

hg help hgsubversion

看提示你就知道是否一切正常了。

2.2 从 SVN 里 clone 一份代码出来

下面能够检出系统代码了!点击鼠标右键,在 Hg 菜单里点击 clone 选项,按下图所示填写SVN检出信息:

./images/hg-svn-checkout.png

若是你填入 SVN 地址的时候,碰到如下问题:

% hg clone --verbose svn+https://127.0.0.1/svn/TestProject/01项目文档 -- E:\test\testhg
停止: URL 'https://127.0.0.1/svn/TestProject/01项目文档' is malformed or the scheme or host or path is missing (SVN_ERR_RA_ILLEGAL_URL)
[command returned code 255 Thu Apr 14 15:10:06 2011]

这是由于你的路径里包含有中文字符串,这在 SVN 的 URL 里严格来讲是要用不少转义字符来表达的。若是你把

https://127.0.0.1/svn/TestProject/01项目文档

改成svn路径:

https://127.0.0.1/svn/TestProject/01%E9%A1%B9%E7%9B%AE%E6%96%87%E6%A1%A3

就可以顺利检出 SVN 文档。

什么?你不知道怎么得到这个地址,你能够查看你 SVN 里的记录。

2.3 从本地 Hg 分支提交修改到 Subversion 服务器

经过 hg 你在本地修改了代码,当修改完成并所有经过测试后,你必定要提交回 Subversion 服务器,这样别人才能看到你的代码。

要提交修改回 Subversion 服务器很简单,须要先确保修改都提交到了本地的 Hg 服务器里:

$ hg commit -m 'your log info'

而后再把 hg 里当前的代码版本提交到 Subversion 服务器里:

$ hg push

这样,你就能够把你修改的代码提交到 SVN 代码服务器里了。不信,你到 SVN 代码目录里 update 一下看看!

2.4 SVN 有更新后 Hg 的状态

若是SVN服务器上的内容有更新,则你在 hg 里用命令从SVN再次更新最新的内容到本地 hg 分支后,将会获得一个奇怪的副本。

这个副本是一个新的分支,内容彻底和 SVN 上最新版本相相似;而你本地修改的代码,将放在另一个代码分支上。

你能够经过点击右键 ==> "Hg Workbench" 来查看这个代码树分支。

出现相似的状况,你须要作的是,选择一个代码分支做为你的当前分支继续工做;或进行相应的合做操做。

2.5 其它疑问

为何 clone 完了之后,却没有文件呢,目录里只有一个 .hg 目录?

有关这个问题,浏忙绪绪我专门写了一个博文《把 SVN 文档导入到 Hg 后目录为空的问题》来论述,嘿嘿~~

3 用 hgsvn 来与 SVN 代码进行交互

若是用上面的方法,显得麻烦一些。若是我只是想维护一个本地的代码仓库,用来临时作一个修改,测试没问题的时候,我再提交到 SVN 仓库里。

这个时候,你能够考虑用 hgsvn 来作本地的代码版本管理,平时都提交到本地的代码仓库里,一旦工做完成,则提交到 SVN 版本库里。



http://cn.waterlin.org/ProjectManagement/Hg.html

相关文章
相关标签/搜索