- 引言
- 本书涉及的内容
- 第 1 部分 Python 开发入门
- 第 1 章 Python 入门
- 第 2 章 开发 Web 应用
- 第 3 章 Python 项目的结构与包的创建
- 第 4 章 面向团队开发的工具
- 第 5 章 项目管理与审查
- 第 6 章 用 Mercurial 管理源码
- 第 7 章 完备文档的基础
- 第 8 章 模块分割设计与单元测试
- 第 9 章 Python 封装及其运用
- 第 10 章 用 Jenkins 持续集成
- 第 11 章 环境搭建与部署的自动化
- 第 12 章 应用的性能改善
- 第 13 章 让测试为我们服务
- 第 14 章 轻松使用 Django
- 第 15 章 方便好用的 Python 模块
- 附录 A VirtualBox 的设置
- 附录 B OS(Ubuntu)的设置
6.5 GUI 客户端
在前面的说明中,我们一直在使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论