Mercurialで閉じたブランチを再開することは可能ですか?


132

Mercurialの名前付きブランチを閉じて、hg branchesリストに表示されないようにすることができることを理解しています。

hg commit --close-branch -m 'close badbranch, this approach never worked'

必要に応じて、後でブランチを再度開くことはできますか?


13
あなたは単にそれを試してみるべきです、学ぶための最良の方法は実験することです、そしてリポジトリはHgで安価なので、ただワイルドになってください。
Lasse V. Karlsen、2010年

1
ダーティリトルシークレット:Hgの「ブランチ」は、「コミットに関連付けられたテキストラベル」を表すもう1つの方法です。「ブランチ」は、関連しない多くの異なるコミットへの多くの異なるヘッドを持つことができます。
user2864740

回答:


164

できます hg update、閉じたブランチに、別の操作を行うhg commitと、それが自動的に再開されます。

このclosedフラグは、オプションを使用しない限りhg branches、閉じたブランチを除外するために使用されるだけで、ブランチを使用できなくなるわけではありません。hg heads--closed


20
実際にコミットするものがない限り、コミットは何もしません。そのため、それを実現するために不必要な変更を行う必要がある場合があります。
Francis Upton IV、

1
指摘してくれてありがとう-私は変更がコミットを行うことによって暗示されていると想定していましたが、もちろん、単にクローズフラグを削除したい場合は、変更なしではできません。
ティムデラニー

3
タグは、コミット可能にするのに十分です。
devlord 2013年

これはコマンドラインインターフェースで機能する可能性がありますが、まだ試していませんが、TortoiseHgでは閉じたブランチに更新できません。そうしようとすると、更新ボタンが無効になります。これを機能させるには、クローズチェンジセット(実質的には親)の前にブランチに更新してから、クローズチェンジセットに更新する必要がありました。奇妙なことに、親に更新すると、TortoiseHgはクローズチェンジセット(子孫)が親であると主張します。何であれ、適切なフープを飛び越えれば、それはうまく機能します。
DaveN59、2015年

それを使用し(phpstormのターミナルを介したコマンドライン)、魅力のように機能します。ありがとう
Mathieu Dierckx 2017

15

ブランチを「作成」するときに「-f」フラグを使用すると、ブランチを再度開くことができます。

いいえ、このコマンドは同じ名前で新しいブランチを作成します。

閉まっていることを忘れてください。ブランチに切り替え、変更を加えてコミットします。自動的に再開されます。完了したら、もう一度閉じることができます。


Gitとは異なり、Mercurialの名前付きブランチは永続的であり、そのブランチ名は再利用できないと思いました。何が混乱していますか?私たちが話しているのは、同じブランチの複数のヘッドですか?
ネイト・クック

2

以下で試してください:

hg pull && hg update branch_name

次に、ファイルの1つに小さな変更を加えてコミットします。

 hg commit -m "minor change"

それを押します

hg push -b . 

これで、正常に作業できるようになります。


-3

これを試して。

実行する前に閉じたブランチに切り替えます。(closed_branchをhg)

hg st

に触れる

追加する

hg commit -m「閉じたブランチを再び開く」

これにより、閉じたブランチが再び開きます。


12
これは、役に立たない空のファイルをリポジトリに追加していますが、これは誤りです。
ラファエルピッコロ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.