どのように正しくあり、特に支店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
は終了いたしました。がありま 新本社, 閉店チェンジセット 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.5Mercurial表示しませんの頭の閉鎖店舗の出力 hg heads
なくなった。
可能であり、合併した支店になります。が正しい方向であり特徴支店?
関連する質問
解決
同ワーキングをお持ちいただくだけで合併特徴支店をオープン(および不活性):
$ 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)
最初は単純なものにとどめることができ開かれます。二つ目の葉はなかヘッド/店舗が必要であり補助す。一つを組み合わせる可能性もあり、最後の実際のコミットの支店がこのコミットを用い --close-branch
, も熟知していることが必要です事前にコミットする立つブログが数多くあります。
更新:以来、Mercurial1.5ができ支店時で表示されないも hg branches
や hg heads
なくなった。るということだけが可能に煩わさは技術的に改定のグラフがしてありますの改正なchilden.
更新2:以来、Mercurial1.8 ブックマーク となっておりコアの特徴Mercurial.ブックマークは利便性のための分岐比の名前。またこの質問:
他のヒント
タグ閉鎖するのを忘れた枝には2つのケースがある私見
ケース1: 分岐がデフォルトにマージされませんでした。
この場合には、私はブランチに更新し、他の--closeブランチでコミットん、残念ながらこれは枝が新しいチップになることを選んだので、他のクローンにそれをプッシュする前に、私は本当の先端が、いくつかのより多くを受けていることを確認してください変更や他の人がその奇妙な先端について混乱しないでください。
hg up myBranch
hg commit --close-branch
ケース2: 分岐がデフォルトにマージされました。
この場合は、はるかに異なる場合1からではなく、それはケース1と二つの追加のもののためのステップを再生することにより解決することができる。
この場合、私は別の--closeブランチでコミットを行い、分岐チェンジに更新し、デフォルトに先端になった新しいチェンジセットをマージします。万歳
- 最後の操作は、デフォルトのブランチである新しいチップを作成します!hg up myBranch
hg commit --close-branch
hg up default
hg merge myBranch
が、これは将来の読者にお役に立てば幸いです。
編集痛い、遅すぎる...私はあなたが機能-Xチェンジ周りを維持したい旨のコメントを読んで、ので、ここでクローニングアプローチは動作しません知っています。
私はまだそれが他の人を助けるかもしれないため、ここで答えをもらおう。
あなたは、たとえば、それは動作しませんでした、ので、完全に、「特徴X」を取り除きたい場合は、、あなたはクローンを作成することができます。これは、記事で説明し、それが作業を行い、それが頭について、具体的協議方法の一つです。
私の知る限りは、あなたがこれを持っているし、一度、すべての「機能-X」頭を取り除きたい理解します:
@ changeset: 7:00a7f69c8335
|\ tag: tip
| | parent: 4:31b6f976956b
| | parent: 2:0a834fa43688
| | summary: merge
| |
| | o changeset: 5:013a3e954cfd
| |/ summary: Closed branch feature-x
| |
| o changeset: 4:31b6f976956b
| | summary: Changeset2
| |
| o changeset: 3:5cb34be9e777
| | parent: 1:1cc843e7f4b5
| | summary: Changeset 1
| |
o | changeset: 2:0a834fa43688
|/ summary: Changeset C
|
o changeset: 1:1cc843e7f4b5
| summary: Changeset B
|
o changeset: 0:a9afb25eaede
summary: Changeset A
ですから、次の操作を行います。
hg clone . ../cleanedrepo --rev 7
そして、あなたは、次があるでしょう、そしてあなたは、その機能-xが実際に行っている表示されます。
@ changeset: 5:00a7f69c8335
|\ tag: tip
| | parent: 4:31b6f976956b
| | parent: 2:0a834fa43688
| | summary: merge
| |
| o changeset: 4:31b6f976956b
| | summary: Changeset2
| |
| o changeset: 3:5cb34be9e777
| | parent: 1:1cc843e7f4b5
| | summary: Changeset 1
| |
o | changeset: 2:0a834fa43688
|/ summary: Changeset C
|
o changeset: 1:1cc843e7f4b5
| summary: Changeset B
|
o changeset: 0:a9afb25eaede
summary: Changeset A
私はあなたが何を望むか誤解しているかもしれませんが、ダウン国防省ないでください、私はあなたのユースケースを再現する時間がかかりました:)
これは誰もまだ機能ブランチを閉じる最も堅牢な方法を提案していないことを、奇妙です... あなただけの の組み合わせ(すなわち、変更されたファイルをコミットすると同時に支店を閉鎖)--close分岐フラグでコミットマージすることができます:
hg up feature-x
hg merge default
hg ci -m "Merge feature-x and close branch" --close-branch
hg branch default -f
だから、それがすべてです。誰もいないrevgraphに余分なヘッド。余分なコミットません。