[解決済み】Mercurialでフィーチャーブランチを正しくクローズするには?
質問
フィーチャーブランチでの作業を終了しました
feature-x
. 結果をマージして
default
ブランチをクローズし
feature-x
の出力から取り除くためです。
hg branches
.
次のようなシナリオを思いついたのですが、いくつか問題があります。
$ hg up default
$ hg merge feature-x
$ hg ci -m merge
$ hg up feature-x
$ hg ci -m 'Closed branch feature-x' --close-branch
そのため
feature-x
ブランチ(changests
40
-
41
)は閉じていますが、そこには
1つの新しい頭
の場合、終了ブランチのチェンジセット
44
にリストアップされます。
hg heads
を毎回使用します。
$ hg log ...
o 44 Closed branch feature-x
|
| @ 43 merge
|/|
| o 42 Changeset C
| |
o | 41 Changeset 2
| |
o | 40 Changeset 1
|/
o 39 Changeset B
|
o 38 Changeset A
|
更新情報
: バージョン1.5以降、Mercurialは閉じたブランチの先頭を
hg heads
は、もうありません。
マージされたブランチを、もう一つ頭を残さずに閉じることは可能でしょうか?機能ブランチを閉じるのに、もっと正しい方法はありますか?
関連する質問
解決方法は?
1つの方法は、マージされたフィーチャーブランチを開いたまま(そして非アクティブのまま)にしておくことです。
$ hg up default
$ hg merge feature-x
$ hg ci -m merge
$ hg heads
(1 head)
$ hg branches
default 43:...
feature-x 41:...
(2 branches)
$ hg branches -a
default 43:...
(1 branch)
もうひとつの方法は、追加コミットを使ってマージする前に機能ブランチをクローズすることです。
$ hg up feature-x
$ hg ci -m 'Closed branch feature-x' --close-branch
$ hg up default
$ hg merge feature-x
$ hg ci -m merge
$ hg heads
(1 head)
$ hg branches
default 43:...
(1 branch)
最初のものはよりシンプルですが、未解決のブランチが残ります。2番目の方法は、未解決のヘッドやブランチを残しませんが、補助的なコミットがもうひとつ必要になります。feature ブランチへの最後の実際のコミットと、この追加コミットを組み合わせるには
--close-branch
しかし、どのコミットが最後のコミットになるかを事前に知っておく必要があります。
更新
: Mercurial 1.5 以降、ブランチはいつでも閉じることができます。
hg branches
と
hg heads
を使用するようになりました。ただ、技術的には、リビジョングラフには、子プロセスのないリビジョンがまだ1つ残っていることが、あなたを悩ませるかもしれません。
アップデート2 : Mercurial 1.8 以降 ブックマーク は Mercurial の中核となる機能です。ブックマークは、名前付きブランチよりもブランチングの際に便利です。この質問もご覧ください。
関連
-
[解決済み] 2つのテーブルをマージして、両方のテーブルの要素を上書きするにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] Git で現在のブランチ名を取得するには?
-
[解決済み] Git フェッチ リモートブランチ
-
[解決済み] Git を使って前のコミットから分岐させる
-
[解決済み] gitのマージ戦略を使い分けるとしたら、どんなとき?
-
[解決済み】既存のGitブランチをリモートブランチに追従させる?
-
[解決済み】ブランチを指定せずにgit pushした場合のデフォルトの動作
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン