デフォルトのブランチから作成した名前付きブランチNewFeatureがあります。そのブランチに2回コミットしましたが、今度はそれをマージしてデフォルトのブランチに再度参加させたいと思います。
今(各手紙はコミットです):
default: A---B
NewFeature: \--C---D
私が欲しいもの:
default: A---B-----------E
NewFeature: \--C---D--/
ディレクトリを右クリックして「Hg Commit ...」を選択してみました。次に、「現在の名前付きブランチを閉じる」を選択しました。私はこのエラーを受け取りました:abort: can only close branch heads
また、リポジトリエクスプローラーで「ブランチを閉じる」オプションを探しましたが、何も見つかりませんでした。
誰か助けてくれませんか?前もって感謝します!
編集: issue をTortoiseHgに投稿しました
マージするには、クリーンな作業コピーが必要です-コミットされていない変更はありません。マージはレビューのために作業コピーに配置され、作業コピーをコミットしてマージを「完了」します。
コミットする準備が整っていないコミットされていない変更がある場合は、それらの変更を一時的に保留にするか(該当する拡張機能がある場合)、マージに使用する別の場所に新しい作業コピーをチェックアウトできます。
リポジトリエクスプローラを使用する:
Update
revへの作業コピーB
。
変更履歴のrev D
行を選択します。
Rev D
を右クリックし、Merge with...
を選択します。ダイアログはrevを表示する必要がありますB
はローカルrevであり、D
は他のrevである必要があります。
マージダイアログでMerge
をクリックし、競合があれば解決します。
これまで、リポジトリには何も変更されていません。マージは作業コピーにあります。したがって、何か問題がある場合は、マージをキャンセルし、作業ディレクトリを元に戻して、後で、または他のブランチやトランクに変更を加えた後でやり直すことができます。
手順1〜4の後で問題がなければ、マージダイアログのCommit
をクリックしてマージをコミットします。
あなたが与える例は、実際のCloseよりもMergeです。また、それが単純な場合、おそらく名前付きブランチを作成する必要はありません。
しかし本当にブランチを閉じたい場合 TortoiseHgを通じて、例えば
これからは、誰もNewFeatureブランチで何かをコミットすることになっていないので、それを閉じます。
TortoiseHgでこれを行うことができます(私はバージョン2.3.2を持っています):
この質問への回答で混乱している人のために、TortoiseHgワークベンチ内からこれを行う方法の手順を次に示します。
NewFeature
ブランチからのブランチの変更がdefault
にマージされます。NewFeature
ブランチは不要になったので閉じることができます。NewFeature
です。TortoiseHgでは、コミットダイアログを使用する前に、作業コピーを閉じたいブランチの先端に更新する必要があります。
ブランチを閉じると、ブランチの先端に新しいチェンジセットが作成されます。
説明したエラー(abort: can only close branch heads
)は通常、名前付きブランチの先端ではないチェンジセットに更新した場合に発生します。
また、ブランチが既に閉じている場合、つまり閉じたブランチを閉じようとすると、このエラーが発生するようです。より役立つエラーメッセージが役立ちます。