`
384444165
  • 浏览: 258445 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

 

1. Mercurial提供了hg incoming命令,它会告诉我们hg pull将会把哪些变更拖进版本库,但不会真正的执行。

因为在运行hg incominghg pull之间可能存在延时,你可能不能看到从其他版本库中的所有导入进来的变更集。假如你正在通过网络从其他地方的版本库拖变更。当你查看hg incoming的输出,还没有拖这些变更的时候,其他人向这个版本库提交了一些东西。这意味着你可能拖进来比你用hg incoming看见的多的变更。如果你仅希望将hg incoming命令列出的变更拖进来,或者由于其他原因希望得到变更的一个子集,那么你可以明确的指定变更集的ID,比如hg pull -r7e95bb

Mercurial允许你将这两个操作组合在一起,只要给hg pull命令加上-u选项就可以了(update)

对于pushoutcoming

 

2. 顶点修改集

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

 

3.对合并结果

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

 

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

 

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

 

 

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

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

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

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

分享到:
评论

相关推荐

    mercurial-2.7-rc.tar.gz

    安装完成后,Mercurial的命令行工具(如`hg`)就可以在您的系统中使用了,你可以用它来管理你的项目,进行提交、更新、分支、合并等一系列版本控制操作。 在实际使用中,了解Mercurial的基本命令是至关重要的,例如...

    emacs-mercurial-el-2.6.2-11.el7.x86_64 (1).rpm

    离线安装包,测试可用

    mercurial-2.6.2-11.el7.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    PyPI 官网下载 | mercurial_on_remote-1.0.0.tar.gz

    2. **自动化脚本**:可能包含一系列用于自动化Mercurial操作的函数,如自动提交、版本更新或者分支管理,这在持续集成/持续部署(CI/CD)场景下非常实用。 3. **错误处理和日志记录**:为了提高稳定性和可追溯性,...

    emacs-mercurial-2.6.2-11.el7.x86_64.rpm

    emacs-mercurial-2.6.2-11.el7.x86_64.rpm

    Mercurial6.2.2.zip

    而“git 分布式 mercurial”的标签,则将Mercurial与另一种著名的DVCS——Git进行了关联,暗示我们将对比两者之间的异同。 Mercurial的核心概念在于其分布式特性。与集中式的版本控制系统(如CVS或SVN)不同,每个...

    mercurial_extension.zip

    这些扩展通常以Python模块的形式存在,位于Mercurial的`extensions`目录下,或者在`~/.hgrc`(Unix系统)或`%USERPROFILE%\Mercurial.ini`(Windows)配置文件中被引用。扩展通过在`[extensions]`部分添加扩展名来...

    Mercurial 参考手册

    《Mercurial 参考手册》是一本详细阐述Mercurial版本控制系统知识的资源,适合开发者和IT专业人员学习和参考。Mercurial是一种分布式版本控制系统,它允许用户跟踪和管理代码更改,便于团队协作和项目管理。在这个...

    Python库 | mercurial-6.0.1.tar.gz

    本篇文章将深入探讨Mercurial的核心功能、安装与配置、基本操作,以及在Python环境中的应用。 首先,让我们了解一下Mercurial的基本概念。Mercurial采用分布式模型,每个开发者的本地仓库都包含完整的项目历史,...

    mercurial-1.8.4-x86.zip(安装包)

    虽然这个版本相对较旧,但它仍然包含了Mercurial的基本功能,如提交、更新、合并和分支管理等。 **安装包格式** 这个安装包是以`.zip`格式提供的,`.zip`是一种常见的文件压缩格式,它允许将多个文件打包成一个...

    Python库 | mercurial-5.8-cp38-cp38-win_amd64.whl

    本资源提供的是Mercurial的一个Python绑定版本——`mercurial-5.8-cp38-cp38-win_amd64.whl`,适用于Python 3.8环境,并且是为64位Windows系统编译的。 **Mercurial基本概念** 1. **版本控制**:Mercurial是一种...

    Mercurial与TortoiseHg使用入门教程

    Mercurial和TortoiseHg是一套强大的版本控制系统,尤其适合那些希望管理代码和项目变更的用户。Mercurial,常简称为Hg,是一个分布式版本控制系统,它允许开发者在本地存储完整的代码历史,无需中央服务器。Tortoise...

    Mercurial 分布式版本控制系统 部署 server 服务

    在本篇文章中,我们将深入探讨如何部署Mercurial服务器服务,以便团队成员可以安全地共享和协作代码。 首先,我们需要了解分布式版本控制系统的概念。与集中式版本控制系统(如SVN)不同,分布式系统中的每个工作...

    Mercurial3.7.3.7

    5. **add_path.exe**:可能是一个帮助程序,用于将Mercurial的路径添加到系统的PATH环境变量中,以便系统能够找到并执行`hg.exe`。 6. **hg.exe**:这是Mercurial的命令行客户端,所有Mercurial操作都将通过这个程序...

    Mercurial(Hg)使用参考

    **Mercurial(Hg)使用参考** Mercurial(Hg)是一种分布式版本控制系统,它使得多人协作开发和管理代码变得更为简单高效。...阅读《Mercurial(Hg)使用参考.pdf》将有助于深入理解这些概念和操作。

    TortoiseHg V5.6.0 Mercurial(Hg)版本管理系统图形客户端(32 位+64 位)

    2. **分支与合并**:Mercurial支持轻松创建和管理分支,允许并行开发。开发者可以在自己的分支上独立工作,完成后通过合并操作将更改集成到主分支。 3. **离线工作**:由于Mercurial是分布式的,你可以在没有网络...

    mercurial-3.7.1-x86.msi

    mercurial-3.7.1-x86.msi 最新的windows安装包,

    Python库 | mercurial_extension_utils-0.11.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:mercurial_extension_utils-0.11.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Mercurial-3.6.3-x64

    SourceTree支持Mercurial,意味着你可以用它来管理Mercurial仓库,包括克隆、提交、拉取、推送和解决合并冲突等。 **Mercurial 3.6.3-x64的关键特性** Mercurial 3.6.3版本可能包含以下特性或改进: - 提升了性能...

Global site tag (gtag.js) - Google Analytics