首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

Mercurial思维研读系列文章——5. 初步深入提交与合并

2012-12-16 
Mercurial思想研读系列文章——5. 初步深入提交与合并?在图中,你可以看到将变更从my-hello拖到my-new-hello

Mercurial思想研读系列文章——5. 初步深入提交与合并

?

在图中,你可以看到将变更从my-hello拖到my-new-hello之后的效果。my-new-hello中已有的版本历史没有发生任何变化,但是增加了一个新的版本。从图 3.1 “my-hello 与 my-newhello最新的历史分叉”中,我们可以发现变更集标识符在新的版本库中保持不变,但是版本号变了。 (顺便说一句,这个例子很好的解释了为什么在讨论变更集的时候版本号是不安全的。我们可以使用hg heads命令查看版本库中的领头版本。图中是5和6。Merge也是合并领头版本。

?

3.对合并结果

当我们完成合并,并通过hgcommit提交合并的结果之前,hg parents命令都会显示当前版本有两个父版本。现在我们有了一个新的顶点版本;注意先前的领头版本都是它的父版本。

?

4. Mercurial没有内建的工具处理冲突。相反,它会运行外部程序,通常是一个能够以图形化显示冲突的软件。缺省情况下,Mercurial会试着从有可能在你系统上安装的几个合并工具中挑选一个。它首先会尝试几个全自动的合并工具;如果不成功(因为解决冲突需要人工干预)或者找不到,它会尝试其他不同的图形化合并工具。如果将环境变量HGMERGE传给你的程序,还可以让Mercurial运行特定的程序或者脚本。

?

5. 三路合并工具推荐:kdiff3

Mercurial思维研读系列文章——5. 初步深入提交与合并

Mercurial思维研读系列文章——5. 初步深入提交与合并

?Mercurial思维研读系列文章——5. 初步深入提交与合并

?

6. Mercurial发布的时候有一个扩展叫做fetch可以完成pull –u; merge;commit –m ..三步的工作

使用fetch扩展非常容易。编辑你的家目录的.hgrc文件,找到扩展段或者创建一个扩展段。然后增加一行“fetch=”。

(一般情况下,“=”的右边应该表示如何找到扩展,但是因为fetch扩展是在标准的发布版中, Mercurial知道哪里能找到它。)

这里也说明了HG的可扩展性和扩展的使用方法

热点排行