1.基本功能
以下命令除了hg clone以外,都需要在HG管理的目录及子目录下执行(目录和子目录执行效果相同)。
1. 版本库初始化
首先使用 hg clone 命令复制库,例如克隆主NGN库:在自己用户根目录下worksapce文件夹下运行hg clone /HGReposity/testDev,完成后可以看到在此目录下出现testDev目录,这个目录即为一个HG库。对一个项目此操作仅需一次,以后与主库的同步使用hg pull。
2. 添加新文件和查看文件状态
在下载好的目录中开发新自己的文件后,用hg add “文件名”将这个文件交给hg进行管理。然后可用hg status –all查看本文件是否被添加上,最前字段为‘A’表示在上一次commit后新添加的文件,‘M’表示上一次commit后修改过的文件,‘C’ 表示上一次commit后没有修改过的文件,‘I’表示被忽略不进行版本追踪的文件(一般是如*.o之类文件),‘?’表示hg尚未管理状态未知的文件。
使用hg diff可以查看现在文件与上一次commit的版本的文件的差别。
3. 本地提交(commit)
对已被管理的文件修改后,使用hg commit命令,在随后出现的vi界面输入commit日志退出保存即可。这里的commit仅提交到本地,与主库无关
4. 记录(log)
想要确认提交完成没有,查看版本历史,用hg log。
5. 从主库取文件(pull)
想从主库上取得当前主库中软件版本,使用hg pull, 如在前面例子中,hg pull /HGReposity/NGNDev ,会将主库中changeset同步到本地,(注意!此时文件并没有改为主库上的版本)再使用hg update 更新文件,使文件到达最新状态。
6. 合并冲突
在hg pull和hg update后,可以提示有merge conflict,表示合并产生冲突,此时将无法commit。主要是本地库和主库对同一个文件的同行进行了修改,hg无法自动合并。需要手动合并。
具体手动合并过程:
打开在merge conflict提示merge失败的文件, 寻找如下注释形式:
<<<<<<<<<<local
…
==============
…
>>>>>>>>>>
的地方,===以上到<<<的内容为本地库此文件的内容,以下为远端库此文件的内容。选择合并代码为合适代码,然后将它添加的注释去掉。
将所有文件中此类问题修改后,使用hg resolve –m -a将所有文件标记为已解决。再commit即可。
7. web界面
使用hg serv,即可启动web页面进行访问,地址默认为http://localhost:8000
8. 获得帮助
hg有内建的帮助系统,参数是help,help后还可以以需要查询的命令为参数。Hg还有很多命令,并且以上介绍的命令一般都有详细的参数,可通过hg help “命令名”查询。
比如:
~/workspace/hg help init