まず、グラフの表示方法を理解しましょう。分岐したレポの先端がx
で、分岐がない線形履歴があるとします。だからあなたの歴史は次のようになります。
[1000's of commits] -> parent(parent(x)) -> parent(x) -> x
今、あなたはA
が最新のものであること最古1とD
ことで4つのコミットすなわちA
、B
、C
とD
を作りました。今、あなたは、グラフのようになります。歴史早いx
より
x -> A -> B -> C -> D
ノートは、その我々が議論している何のために情報の一部を必要としないので、その上で含まれていない、無傷のままです。
B
チェンジセットのみを含むプルリクエストを作成します。メインレポはB
の親であるA
も知らないので、現在の状態ではこれは不可能です。あなたは親が/そこにいない限り子供を持つことはできません。
したがって、B
チェンジセットのプルリクエストを作成する場合は、rebase
をx
にする必要があります。
rebase
はMercurialのでは拡張機能である、あなたは我々が拡張有効にした後のは、リベースしてみましょうあなたの.hg/hgrc
[extensions]
rebase =
に次の行を追加することによって、それをオンにすることができます。
hg rebase -s B -d x
これは、になります:B
の親がx
あるので、今、あなたはプルリクエストを作成することができます
x -> A
\-> B -> C -> D
。また、C
を再度A
にリベースすることで、よりきれいな履歴状態にすることもできます。 2つのブランチ、1つはプッシュしたいチェンジセット、他のローカルチェンジセットを含みます。再びリベースは、次のようになります。
hg rebase -s C -d A
と歴史の結果の状態です:
x -> A -> C -> D
\-> B
あなたは簡単にだけB
チェンジを含むプル要求を作成することができます。
関連リンク:
Rebase Extension