Mercurialブックマークを使用していた場合は、そうです。ブックマークはチェンジセットへのポインターであるため、ブックマークを強制的に任意の場所にポイントさせることができます(ブックマークは、知っている場合はgitブランチによく似ています)。Mercurialの名前付きブランチは、すべてのチェンジセットに付けられた消えないラベルです。名前付きブランチについて話している場合、「ヘッド」はそのブランチ名を持つ「最も先端の」(本質的に最新の)チェンジセットであるため、そのブランチを持つすべての祖先を削除せずに古いチェンジセットをヘッドにすることはできません。名前。
これが役立つかもしれない図です。各チェンジセットの「ブランチ」はそのブランチ名です(すべてのチェンジセットにはブランチ名がありますが、そうである場合default
、ほとんどのUIコンテキストには表示されません)。
[0] (branch: default)
|
[1] (branch: default)
| \
[2] \ (branch: default)
| [3] (branch: beta)
[4] | (branch: stable)
| [5] (branch: beta
[6] (branch: stable)
この図には、2つのトポロジカルヘッド、チェンジセット6と5がありますが、合計3つのヘッド、2、5 、および6があります。
beta
チェンジセット5は、そのブランチ名を持つ「最新の」チェンジセットであるため、ブランチのヘッドです。stable
チェンジセット6は、そのブランチ名を持つ「最新の」チェンジセットであるため、ブランチのヘッドです。default
また、チェンジセット2は、その名前が付いた最新のチェンジセットであるため、ブランチのヘッドです。
したがって、あなたの質問を理解した場合、beta
すべてのチェンジセットが1つのブランチにのみ存在するため、1つのブランチを安定させるチェンジセット6をブランチのヘッドにすることはできません。したがって、単一のチェンジセットをヘッドにすることはできません。 2つの異なる名前付きブランチ。
ただし、オプションはたくさんあります。
ブランチベータで、現在の安定版のヘッドとまったく同じように見える新しいチェンジセットを作成します。
hg checkout stable # makes the working directory look like changeset 6
hg branch beta # tell mercurial that the next changeset created should be on branch 'beta'
hg commit # creates changeset 7 on branch beta w/ contents of changeset 6
(「変更なし」を回避するために)そこでコミットする前に、いくつかの小さな変更を加える必要があるかもしれませんが、それがその要点です。新しいチェンジセットには6のファイルがありますが、ブランチラベルが「beta」で5よりも新しいため、「beta」の新しいヘッドになります。
また
ブックマークの使用に切り替えます。ブックマークは、ブランチが機能することを想像している方法に似ています。それらはチェンジセットへのポインターであり、複数のポインターが同じチェンジセットを指すことができます。