我刚刚开始研究一个使用 Mercurial 作为版本控制系统的项目,我需要一些关于如何使用它的基本技巧。请使用此问题提供有关此技术的一些介绍性提示。
特别是,我正在寻找有关使用的最佳程序和最佳技术的提示(分支、进出检查等。我需要学习最佳实践!)
我刚刚开始研究一个使用 Mercurial 作为版本控制系统的项目,我需要一些关于如何使用它的基本技巧。请使用此问题提供有关此技术的一些介绍性提示。
特别是,我正在寻找有关使用的最佳程序和最佳技术的提示(分支、进出检查等。我需要学习最佳实践!)
我知道您已经拥有 Mercurial 网站,但对我来说最有用的资源是Mercurial 书。这是对该程序及其使用方法的出色概述。
我发现学习 Mercurial 的最佳方式就是在项目中使用它。我将一个从 subversion 导出的项目导入 Mercurial,并用它进行了一些常规开发。我确保为不同的变更集克隆存储库,以便我可以习惯合并和更新。我还没有学会所有的高级用法,但我现在已经站稳了脚跟,还没有切换回 Subversion。
许多项目有不同的提交工作流技术。有些更改是从开发人员那里推送的,例如集中式系统,有些会从贡献者那里提取更改(例如 Linux)。在不了解项目流程的情况下很难概括太多。
这就是我的开发方式:
project-trunk
文件共享或http 上的集中树,称为project
最终项目版本project-local
project-local
树:例如。project-addusers
,project-141
等。project-local
存储库project-local
送到project-trunk
我有干净的project-local
树,因为这样我可以一次将所有变更集推回主干,如果有一组相关的更改需要一起推回,这将很有帮助。
至于工具,这取决于您的平台。我只是使用香草命令行工具。来自 TortoiseSVN,进入命令行有点变化。但我现在很好。我尝试使用 TortoiseHg,但它在我的 Windows 7 x64 虚拟机上运行不佳。我听说它在受支持的 32 位平台上要好得多。
这是由Joel Spolsky撰写的关于 Mercurial的有用教程。
它涵盖了基本用法和命令,以及如何在概念层面上使用 Mercurial。如果您已经熟悉 SVN,那么第一部分绝对值得一读:它讨论了 SVN 和 Mercurial 之间的主要概念差异,因为尝试以与使用 SVN 相同的方式使用 Mercurial 是自找麻烦。
看看Mercurial 的书,或者这个Mercurial 教程。
如果您使用最新的TortoiseHG客户端并将安装目录包含在您的 PATH 环境中,您将能够使用它们提供的漂亮 GUI 和命令行“hg”
我不建议过多地使用 mq 扩展。它们构成了一个很棒的“工作存储库”环境。
我使用队列来管理针对颠覆存储库的本地更改。我进行本地短期更改并使用 mercurial 与 subversion 和团队的其他成员保持同步。
根据您使用其他源代码控制工具的背景,我还建议使用特定的 SCM——无论是 Mercurial 指南。例如,看看这个 Subversion 用户指南。
另一个让您了解整个“分布式”源代码控制理念的好资源是:http ://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/ ...带有有用的图表!
Steve Losh 的一些博客文章很不错,尽管它们现在已经有几年了。他们主要处理如何使用分支。
他的hgtip.com网站也值得一看。
除了 Mercurial Book 和 Hg Init 教程之外,我还想提一下我编写的示例驱动指南:
它展示了如何开始使用 Mercurial,还涵盖了一些更高级的概念,例如命名分支和 hgsubversion。我在向新用户教授 Mercurial 时使用过它,他们似乎很喜欢它。