免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2170 | 回复: 1
打印 上一主题 下一主题

Linux下Mercurial (hg)配置说明 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-24 19:59 |只看该作者 |倒序浏览

               
这个工具在国内很少人使用,所以中文资料匮乏.只有官方的website上有一些少得可怜的中文资料了.不过总体上来说,hg还是比较好用的。
这里绍一下hg
服务器
的配置。关于hg在基本用法参见mercrial的官方网站。在做以下操作时,请到
http://www.selenic.com/mercurial/
下载
安装hg.
1.建立用户hgrepo
其它用户将用这个账户用hg
服务器
push代码。
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
http://test:8002
然后在本地目录就会出现一个project.hg的一个copy.
修改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.
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文件打到当前的代码树上。
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/102500/showart_2059416.html

论坛徽章:
0
2 [报告]
发表于 2012-09-22 16:18 |只看该作者
在按照步骤执行hg ci时,没报错么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP