返回介绍

6.5 GUI 客户端

发布于 2024-01-21 17:11:03 字数 4139 浏览 0 评论 0 收藏 0

在前面的说明中,我们一直在使用 Mercurial 的命令工具(CUI 客户端),其实 Mercurial 也有 GUI 客户端工具的。本节我们将了解一下 GUI 客户端的优缺点,以及一些工具。

6.5.1 GUI 客户端的介绍

这里先介绍一些主要的 GUI 客户端及其导入方法。

◉ TortoiseHg

TortoiseHg4 最早是 Windows 专用的 GUI 客户端,如今已经可以在 Windows/OS X/Linux 上跨平台使用了(图 6.8)。

4 http://tortoisehg.bitbucket.org/

图 6.8 TortoiseHg 的示例界面

安装

在 OS X 环境下,要通过 http://tortoisehg.bitbucket.org/download/index.html 的相应链接下载 zip 格式的 app 压缩包,解压后将 TortoiseHg.app 放到应用程序文件夹中并安装。之后的流程与安装 KDiff3 时一样。在 Windows 环境下,只要从 http://tortoisehg.bitbucket.org/ 下载安装包直接运行安装即可。如果是 Linux,http://tortoisehg.bitbucket.org/download/index.html 也写了哪个发布版有程序包可用。如果各位的环境有相应程序包,可以通过 apt 等包管理系统进行安装。

◉ SourceTree

SourceTree5 是 Atlassian 提供的商用 GUI 客户端,同时支持 Mercurial 和 Git。最早是 OS X 专用的 GUI 客户端,现在则可以同时支持 OS X 和 Windows(图 6.9)。

5 http://www.sourcetreeapp.com/

图 6.9 SourceTree 的示例界面

安装

如果是 OS X 环境,需要从 http://www.sourcetreeapp.com/ 下载 dmg 文件,然后将解压出来的 SourceTree.app 放入应用程序文件夹并安装。Mac App Store 上只提供了旧版本,所以请不要用那个。如果是 Windows 环境,则要从 http://www.sourcetreeapp.com/ 下载安装包直接安装。

至于合并工具的设置,在“环境设置”→“Diff”的“外部代码差异对比 / 合并”部分进行(图 6.10)。

图 6.10 设置 SourceTree 的合并工具

6.5.2 GUI 客户端的优点

下面我们以 TortoiseHg 为例来看看 GUI 客户端的优势。

◉ 显示历史图

GUI 客户端最大的特点就是时常显示历史图,并且能以它为起点进行多种操作。

如图 6.11 所示,打开工作台,上部窗格显示历史图,左下窗格显示历史图中已选定的修订版与其 parent 之间的 status,右下的窗格则显示提交日志以及 status 窗格中已选定文件的 diff。在历史图上右键点击各修订版可以直接执行 update 等操作,十分方便。

图 6.11 TortoiseHg 的工作台

◉ 工作目录的状态与差别的显示

在历史图中,工作目录与修订版享受同等待遇。选择工作目录后,左下窗格显示 status,右下窗格显示提交日志的草稿以及 diff(图 6.12)。

图 6.12 TortoiseHg 的工作台(选择了工作目录的状态)

提交也在这个界面中进行。由于提交时能看到文件复制的状态,所以能有效地减少提交方面的失误,比如出现了不该有的变更,或者在没有进行 add/remove 的情况下就进行提交等。

◉ 合并

TortoiseHg

TortoiseHg 会在合并发生冲突时显示 Unresolved 文件的列表。

图 6.13 TortoiseHg 解决冲突的界面

如图 6.13 所示,我们可以选择 Unresolved 的文件并点击右键,并从下述解决方案中进行选择。

· 通过 Mercurial 消除冲突

· 通常我们在合并时都选择了“尽量自动消除合并冲突”,所以不选用这个

· 启动 GUI 客户端消除冲突

· 采用当前所处位置的最新版本,并将状态改为 Resolved

· 采用合并目标一方的最新版本,并将状态改为 Resolved

· 编辑 Unresolved 文件后将状态改为 Resolved

6.5.3 GUI 客户端的缺点

GUI 客户端的缺点如下。

· 操作对象必须是 PC 本地版本库。通过 ssh 在服务器上工作时无法使用它们

· hg 命令只要导入 extension 就能轻松地添加功能,但 GUI 客户端只能使用其固定支持的 extension

虽说有着这些缺点,但几乎所有 GUI 客户端都提供了打开 terminal 的功能,在用户觉得用 CUI 更好的时候能随时切换到 CUI。至于在服务器上工作的问题,我们平时的提交可以通过 CUI 进行,遇到合并等用 GUI 更方便的操作时,可以先把版本库 pull 到本地再用 GUI 客户端处理。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文