2009-09-21 6 views

答えて

20

hg branch X何もありません「Mercurialには、次のコミットはブランチXにする必要があります。実際にはブランチを「作成」しません。少なくとも一つがそれにコミットがありますまで、ブランチが存在しません:

sjl at ecgtheow in ~/Desktop/test on default at tip 
$ hg branch a 
marked working directory as branch a 

sjl at ecgtheow in ~/Desktop/test on a at tip 
$ hg branch b 
marked working directory as branch b 

sjl at ecgtheow in ~/Desktop/test on b at tip 
$ hg branches 
default      0:aae011bc1b00 

sjl at ecgtheow in ~/Desktop/test on b at tip 
$ echo foo >> x 

sjl at ecgtheow in ~/Desktop/test on b at tip! 
$ hg com -m1 

sjl at ecgtheow in ~/Desktop/test on b at tip 
$ hg branches 
b        1:b66106035d8d 
default      0:aae011bc1b00 (inactive) 

sjl at ecgtheow in ~/Desktop/test on b at tip 
$ 

だからあなたの質問への答えは:「次はブランチ-A上にあるものとしてコミットマークするhg branch branch-Aを使用」

+3

素晴らしい情報ですが、OPがやろうとしていることをする方法を追加する価値があるかもしれません:hg branch branchA; branchAにコミットする; hgデフォルトを更新します。 hg branch branchB、branchBにコミットします。キーは "hg update default"なので、branchBはbranchAと同じコミットに基づいています。 –

+0

良い情報、悪い説明。 ecgtheowでsjl ..ええ..? hg co.jpも、Google社員にこのHGコミットを依頼してください。人々は解答を解読する必要はありません。申し訳ありませんが、-1。 – Stolas

+0

こんにちはスティーブ、あなたのガイドにこの情報を今よりも明示的に追加してみませんか?ガイドを改善するかもしれません。 ( "hgブランチXはMercurialに"ブランチX上にあるべき次のコミット "を除いて何もしません。実際にブランチを作成しません。ブランチは少なくとも1つコミットするまで存在しません") –

-5

'hg update -C branch-name'を使用してください。

+0

いいえ。分岐コマンドが1つずつ次々に発生する場合、最初のブランチはコミットされていないため存在しません。また、盲目的に-Cを更新と併用するのは良い考えではありません。 -c通常と-Cを使用するほうが本当に必要なときにはもっと安全です。 –

0

カール・マイヤーは、私がのために行くだろう言うように:私は、少なくとも一つがありますまで、ブランチが存在しない」のに(スティーブLoshが、その後、ここで彼のガイドに良い答えを提供して考える、皮肉なことに

hg branch branch-A 
commit branch-A 
hg update default 
hg branch branch-B 
commit branch-B 

それをコミットする "は、私がガイドに追加したいと思う非常に良いヒントです)。

section on named branchesを読むと、彼はどのように動作し、どのように切り替えるかを簡潔に説明します。

関連する問題

 関連する問題