灵感来自Git初学者:权威的实用指南。

这是一个关于初学者实际使用Mercurial的信息汇编。

初学者——一个接触过源代码控制却没有很好地理解它的程序员。

实用——涵盖大多数用户经常遇到的情况——创建存储库、分支、合并、从远程存储库拉/推到远程存储库等等。

注: 解释如何完成某件事,而不是解释某件事是怎样的 实现的。 回答一个问题。 回答清楚,尽可能简洁。 上编辑/扩展现有答案,而不是创建新答案 同样的话题。 请为想了解更多的人提供Mercurial wiki或HG Book的链接。

问题:

安装/设置

如何安装Mercurial? 如何设置Mercurial? 如何创建一个新的项目/存储库? 如何将其配置为忽略文件?

使用代码

How do you get the latest code? How do you check out code? How do you commit changes? How do you see what's uncommitted, or the status of your current codebase? How do you remove files from the repository? How do you destroy unwanted commits? How do you compare two revisions of a file, or your current file and a previous revision? How do you see the history of revisions to a file or repository? How do you handle binary files (visio docs, for instance, or compiler environments)? How do you merge files changed at the "same time"? How do you revert a Changeset? How do you go back to a previous version of the code? How do you extract a patch from a specific changeset? How do you record that you renamed or deleted a file without using the Mercurial command?

标记、分支、发布、基线

你如何“标记”、“标记”或“发布”一组特定文件的特定修订,以便以后总是可以提取它? 你如何进行特定的“释放”? 你如何分支? 如何合并分支? 如何将一个分支的部分合并到另一个分支中?

其他

好的GUI/IDE插件Mercurial?优点/缺点? 还有其他初学者应该知道的常见任务吗? 如何与Subversion交互?

其他Mercurial参考资料

Mercurial:权威指南 Mercurial维基 满足Mercurial |偷窥码屏幕播放 掌握Mercurial | TekPub屏幕播放 Hg初始化-接地水银教程


当前回答

你如何“标记”、“标记”或“发布”一组特定文件的特定修订,以便以后总是可以提取它?

$ hg tag my-tag

您还可以克隆存储库来创建一个特殊的标记存储库。

$ hg clone working-repository my-tag-repository

其他回答

你如何分支?

$ hg分支我的分支

or

复制my-branch

尽管需要注意的是,branch创建了一个“虚拟”目录(即文件保持不变,但hg将它们视为系统内部的不同文件),而clone创建了一个实际的、完整的副本。严格来说,克隆并不是分支。

如何设置Mercurial?

Mercurial将其配置信息存储在~/中。*nix系统为%UserProfile%\ mercury .ini, Windows系统为%UserProfile%\ mercury .ini。(%UserProfile%在Windows 2000或Windows XP系统上通常是“C:\Documents and Settings\[username]\”,在Windows Vista和Windows 7系统上通常是C:\ users \[username]\)

首先,你应该在你的.hgrc或mercury .ini中设置你的Mercurial用户名:

# This is a Mercurial configuration file.
[ui]
username = Firstname Lastname <email.address@example.net>

Windows系统上的TortoiseHg用户也可以执行hgtk userconfig命令

参见“Mercurial:权威指南”第2章中的“创建Mercurial配置文件”。

如何将一个分支的部分合并到另一个分支中?

在。hg/hgrc中启用“移植”扩展名

[extensions]
transplant=

加载目标分支,然后移植目标修订版本。 例如:樱桃挑选修订版81从分支'foo'到当前分支

$ hg transplant -b foo 81

如何创建一个新的项目/存储库?

$ hg init my-repository

如何查看文件或存储库的修订历史?

显示整个存储库或文件的修订历史

$ hg log {file(s)}

or

$ hg history {file(s)}

看看列表的倒序

$ hg log -r: