Chinaunix首页 | 论坛 | 博客
  • 博客访问: 622289
  • 博文数量: 201
  • 博客积分: 3076
  • 博客等级: 中校
  • 技术积分: 2333
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-02 19:44
文章分类

全部博文(201)

文章存档

2010年(118)

2009年(83)

我的朋友

分类: LINUX

2009-09-24 19:59:49

这个工具在国内很少人使用,所以中文资料匮乏.只有官方的website上有一些少得可怜的中文资料了.不过总体上来说,hg还是比较好用的。

这里绍一下hg的配置。关于hg在基本用法参见mercrial的官方网站。在做以下操作时,请到 http://www.selenic.com/mercurial/安装hg.

1.建立用户hgrepo

其它用户将用这个账户用hgpush代码。

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

2.建立hg代码仓库

如果代码仓库名称为project.hg,则可用如下命令。

cd /home/hgrepo
mkdir project.hg
cd project.hg
hg init # 初始化代码仓库
建立一个文件

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

3. 打开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这样就可以在开机的时候自动运行了。

4.使用hg

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

clone到本地

例如你的服务器的名字为test.

hg clone
然后在本地目录就会出现一个project.hg的一个copy.

修改Client端的配置

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

[paths]
default =
default-push = ssh://hgrepo@test//home/hgrepo/project.hg/
[ui]
username=shaohui.zheng
这样你就可用hg push 向服务器提交code了。这时服务器会问你passward,这个password就是用户hgrepo的password.

Good Luck.

官方网站

http://www.selenic.com/mercurial/ 


-------------------------------------------

使用:
1.初始化
假设你的源代码目录为proj,执行以下步骤可以建立初始的repository
$ cd proj
$ hg init         //生成repository
$ hg add /fullpath/filename //加入文件
或者
$ hg addremove    //加入可识别的文件,去除其他文件
$ hg commit       //生成你的代码的第一个版本
执行此命令会让hg调用vi,这时你可以键入一些关于当前提交内容的一些信息,然后保存退出,这个版本就行程了。

2.版本
以后每当你改动文件后都可以使用hg commit命令来生成一个新的版本
$ hg parent  //查看当前的版本
$ hg log     //查看所有历史版本
$ hg tag    //可以在一些重大的阶段制作tag,以便于将来对代码的一些里程碑进行回溯 
$ hg tags   //查看所有的tag,进行大的版本比较
$ hg co 版本号 //可以检出任意一个版本进行修改
而如果需要废弃某一版本后的所有版本可以使用hg strip 版本号,这样以后的提交的版本号将会从此版本号之

后计算。

3.文件
$ hg status  //查看现在代码中文件的状态,m表示修改过,a表示新加的文件,
              ?表示文件状态未知。
新生成的文件使用 $ hg add /fullpath/filename后状态就会由?变为a
!!!新生成的文件务必要用add命令加入repository,否则在做diff文件的时候会没有新文件的内容!!!
$ hg revert //当你改变了一些文件又后悔后就可以使用此命令来取消改动
$ hg clone source dest //可以完整地将一个repository拷贝到另一个目录,这很适合做分支处理或者作一些实验型代码。
$ hg update  //从原始代码树中取得最新的更新
$ hg pull 和 hg push 分别从原始地代码树中取得或者提交最新更新地文件

4.patch
$ hg diff //比较当前改动和当前版本的区别,也可以用-r参数指定两个版本进行比较,比较的结果可以从定向到文件,此文件即是一个标准的patch文件。
$ hg import /fullpath/filename //将patch文件打到当前的代码树上。

阅读(1638) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~