当前位置: 首页 > 工具软件 > hg-diff > 使用案例 >

linux hg 图形,Linux下Mercurial (hg)配置说明

万博涛
2023-12-01

这个工具在国内很少人使用,所以中文资料匮乏.只有官方的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.

官方网站

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

使用:

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文件打到当前的代码树上。

 类似资料: