Mercurial简介

时间:2009-05-08 01:31:33

标签: version-control mercurial dvcs

我刚刚开始研究一个使用Mercurial作为版本控制系统的项目,我需要一些关于如何使用它的基本技巧。请使用此问题提供有关此技术的一些介绍性提示。

特别是,我正在寻找有关最佳程序使用的技巧和最佳使用技巧(分支机构,进出检查等等。我需要学习最佳实践!)

7 个答案:

答案 0 :(得分:13)

我知道您已经拥有Mercurial网站,但对我最有用的资源是Mercurial book。这是该程序及其使用方法的绝佳概述。

我发现学习Mercurial的最佳方法就是在项目中使用它。我导入了Mercurial一个我从subversion导出的项目,并用它进行了一些定期开发。我确保为不同的变更集克隆存储库,以便我可以习惯合并和更新。我还没有学到所有的高级用途,但我现在已经非常坚定了,并且还没有切换回Subversion。

许多项目都有不同的提交工作流技术。有些人会从开发人员那里推动变革,比如集中式系统,有些人会从贡献者(例如Linux)中获取变化。如果不了解项目的流程,很难概括太多。

这就是我的发展方式:

  • 文件共享或http上的集中树,名为project-trunkproject,是最终项目版本
  • 我的系统上的一个干净的树,我从远程存储库克隆并用于推送回存储库。然后我从这棵树克隆我的更改。我将此树称为project-local
  • 为我的每个更改克隆project-local树:例如。 project-addusersproject-141
  • 在完成对树的提交后,我将更改推送到project-local存储库
  • 最后,将project-local中的更改推送到project-trunk

我有干净的project-local树,因为我可以一次将所有变更集推回到主干,如果有一组需要反推的相关变更,这会很有帮助。

至于工具,它取决于您的平台。我只是使用vanilla命令行工具。来自TortoiseSVN,转到命令行有点变化。但我现在很好。我尝试使用TortoiseHg,但它在我的Windows 7 x64虚拟机上运行不正常。我听说在支持的32位平台上它要好得多。

答案 1 :(得分:13)

以下是由helpful tutorial撰写的关于Mercurial的Joel Spolsky

它涵盖了基本用法和命令,以及如何在更概念的层面上使用Mercurial。如果您已经熟悉SVN,那么第一部分绝对值得一读:它讨论了SVN和Mercurial之间的主要概念差异,因为尝试以与使用SVN相同的方式使用Mercurial会遇到麻烦。

答案 2 :(得分:5)

答案 3 :(得分:2)

如果您使用最新的TortoiseHG客户端并在PATH环境中包含安装目录,您将能够使用它们提供的漂亮GUI和命令行'hg'

我不建议过多使用mq扩展名。它们构成了一个伟大的“工作存储库”环境。

我使用队列来管理针对subversion存储库的本地更改。我做了我当地的短期更改并使用mercurial与subversion和团队的其他成员保持同步。

答案 4 :(得分:2)

根据您使用其他源代码控制工具的背景,我还建议使用特定的SCM - Mercurial指南。例如,请查看this guide for Subversion users

让您了解整个“分布式”源代码控制理念的另一个好资源是:http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/ ...有用的图表!

答案 5 :(得分:1)

Steve Losh的一些博客文章很好,尽管他们现在已经有几年了。它们主要涉及如何使用分支。

还值得查看他的hgtip.com网站。

答案 6 :(得分:0)

除了Mercurial Book和Hg Init教程之外,我还想提一下我编写的示例驱动指南:

它展示了如何开始使用Mercurial,还介绍了一些更高级的概念,例如命名分支和hgsubversion。我在向新用户教授Mercurial时使用过它,他们似乎喜欢它。