您的位置:首页 > 其它

分布式版本控制系统Mercurial介绍与使用小记

2013-12-29 13:09 281 查看
最近下载了一个Google开源库的源代码,看到里面有个.hg文件夹,里面有一些这样的文件:



不知道这些文件都是干嘛的,打开看了下也看不懂,于是google了下发现是版本控制系统Mercurial的文件,以前只听说过CVS(现在基本已淘汰)、SVN和Git这三种版本控制系统,不知道Mercurial为何物,于是就稍微学习了下。

1. Mercurial简单介绍

Mercurial 是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。相对于传统的版本控制,具有如下优点:

更轻松的管理。

传统的版本控制系统使用集中式的 repository,一些和 repository相关的管理就只能由管理员一个人进行。由于采用了分布式的模型,Mercurial 中就没有这样的困扰,每个用户管理自己的 repository,管理员只需协调同步这些repository。
更健壮的系统。

分布式系统比集中式的单服务器系统更健壮,单服务器系统一旦服务器出现问题整个系统就不能运行了,分布式系统通常不会因为一两个节点而受到影响。
对网络的依赖性更低。

由于同步可以放在任意时刻进行,Mercurial 甚至可以离线进行管理,只需在有网络连接时同步。

这个工具在国内很少人使用,所以中文资料匮乏.不过国外使用的人还是不少,比如Google,总体上来说,hg还是比较好用的,属于轻量级的,适合一些小型项目。

2. Mercurial简单配置及使用

这里简单介绍一下hg服务器的配置。关于hg在基本用法参见mercrial的官方网站

在做以下操作前,请先到官方网站下载安装hg。下面在Ubuntu 13.04下测试成功。

2.1 建立用户hgrepo

其它用户将用这个账户在hg服务器上push代码。

useradd hgrepo -d /home/hgrepo # add user hgrepo
passwd hgrepo


2.2 建立hg代码仓库

如果代码仓库名称为project.hg,则可用如下命令建立仓库文件夹及初始化代码仓库。

cd /home/hgrepo
mkdir project.hg
cd project.hg
hg init # 初始化代码仓库


2.3 建立一个测试文件,添加进仓库并检查

echo "hello, mercurial" > sample.txt
hg add  # add
hg ci     # check in


2.4 打开http

打开一个端口,让远程用户可以clone仓库中的代码,在打开端口前请确定文件权限正确。

更改文件权限

chown hgrepo.hgrepo /home/hgrepo/project.hg -R
chmod og+rw /home/hgrepo/project.hg -R


打开端口

cd  /home/hgrepo/project.hg -R
hg serve -p 8002 &


可将上面两行加入/etc/rc.local这样就可以在开机的时候自动运行了。

3. 使用hg

完成步骤2以后,我们就可以使用了。

3.1 clone到本地

例如你的服务器的名字为test,则用hg clone命令克隆到本地

hg clone http://test:8002[/code] href="http://test:8002/" target=_blank>

这样在本地目录就会出现一个project.hg的一个副本。

3.2 修改Client端的配置

更改.hg/hgrc,加上default-push和username字段

[paths]
default = http://test:8002 default-push = ssh://hgrepo@test//home/hgrepo/project.hg/
[ui]
username=shaohui.zheng


这样你就可用hg push 向服务器提交code了。这时服务器会问你passward,这个password就是用户hgrepo的password。

上面只是简单的使用,具体的配置选项及其它命令选项请参考mercrial的官方网站

4. 参考资料

http://www.oschina.net/p/mercurial/
http://blog.csdn.net/linxxx3/article/details/5989807




微信学习公众平台-媛媛推荐



微信号:programer-idea

名称:程序媛想事儿


功能介绍:媛媛的主题包括技术蛋糕(包括IT最新资讯、C/C++/Java等编程语言知识及有关算法探讨等IT资料)、生活指南、轻松一刻三个栏目,每天会推送这三个方面的信息给大家,让猿媛们在学习IT知识的同时能关注生活关注健康,同时还能轻松开怀一笑。同时,大家可以回复关键词定制自己想要的信息,如只看C/C++相关资料、只看Java相关资料、只看生活指南或只想开怀一笑都是可以的,后期会根据需要开设疑难解惑等其它平台,欢迎大家加入学习!!!

作者:Alexia(minmin)

CSDN:http://blog.csdn.net/lanxuezaipiao

博客园:http://www.cnblogs.com/lanxuezaipiao/

本文版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接

否则保留追究法律责任的权利
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: