我刚刚开始开发一个使用 Mercurial 作为版本控制系统的项目,我需要一些关于如何使用它的基本技巧。请利用这个问题给出一些关于这项技术的介绍性技巧。

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

有帮助吗?

解决方案

我知道您已经有了 Mercurial 网站,但对我来说最有用的资源是 善变的书. 。这是对该程序及其使用方法的精彩概述。

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

许多项目都有不同的提交工作流程技术。有些是由开发人员推动的更改,例如集中式系统,有些将从贡献者(例如 Linux)那里拉取更改。如果不了解项目的流程,就很难一概而论。

这就是我的开发方式:

  • 文件共享或 http 上的集中式树​​,称为 project-trunk 或者 project 这是最终的项目版本
  • 我的系统上有一棵干净的树,我从远程存储库克隆并使用它推回到存储库。然后我从这棵树中克隆以进行更改。我称这棵树为 project-local
  • 克隆 project-local 我的每个更改的树:例如。 project-addusers, project-141, , ETC。
  • 完成对树的提交后,我将更改推送到 project-local 存储库
  • 最后,将更改推送到 project-localproject-trunk

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

至于工具,这取决于你的平台。我只使用普通命令行工具。来自 TortoiseSVN,对命令行进行了一些更改。但我现在已经很好了。我尝试使用 TortoiseHg,但它在我的 Windows 7 x64 虚拟机上运行不佳。我听说它在受支持的 32 位平台上要好得多。

其他提示

这里有一个 有用的教程 关于 Mercurial 编写者 乔尔·斯波尔斯基.

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

看看 善变的书, ,或者此时 水银教程.

根据您使用其他源代码控制工具的背景,我还会向 Mercurial 指南推荐一个特定的 SCM。例如,看看 本指南适用于 Subversion 用户.

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

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

我不建议过多使用 mq 扩展。它们创造了一个很棒的“工作存储库”环境。

我使用队列来管理针对颠覆存储库的本地更改。我进行本地短期更改,并使用 Mercurial 与 Subversion 和团队其他成员保持同步。

Steve Losh 的一些博客文章很不错,尽管它们已经发布了几年了。它们主要涉及如何使用分支。

他的作品也值得一看 hgtip.com 地点。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top