これはかなり簡単に行うことができますが、次回は作業の独立した作業(ビルド作業と残りのスケンクワークス)を行うときに別々のヘッドで行うことをお勧めします。 hg push w/o skunkworksを使って製品に直接構築することもできます。あなたのスカンクワークスのクローンが2頭、ビルド作業と1とスカンクワークスのものを持っているだろう、その時点で
hg clone product skunkworks
cd skunkworks
... build hacking ...
hg commit
... build hacking ...
hg commit
hg update REVNUMBER # where revnumber is the last revision that exists in product
... skunkworks hacking ...
hg commit # at this point you'll see (+1 heads)
... more skunkworks hacking ...
hg commit
:そのパターンは次のようになります。作業中に前後に切り替えることができます。ビルドと日没を交互に切り替えながら、同じクローン内で別々にすることができます。スカンクワークスでの作業中に、あなたが行うことができますあまりにもビルド細かい点にしたい場合:
hg update SKUNKWORKSHEAD
hg merge BUILDHEAD
スカンクワークスにbuildworkをマージしますが、buildworkのものは、まだ親として任意のスカンクワークスを持っていないので、いつでもあなたができること:
cd ../product
hg pull -r BUILDHEAD ../skunkworks
あなたは他のスケッチワークの変更なしでビルド用のものだけを製品に移動できます。 は、skunkworksを製品に移動する準備ができているので、ビルドの変更がどこから来たのか、そしてそれらを正しく統合する方法を正確に知ることができるので、このようなことを行う最適な方法です(技術的には匿名ブランチと呼ばれます)。スカンクワークス。
やれやれは、あなたが今、何をしたいか言ったことすべては、おそらくです:
cd skunkworks
hg diff -I buildstuff/** -r LAST_REV_IN_PRODUCT -r tip > ../applyme.patch
cd ../product
hg import --no-commit ../applyme.patch
hg commit
欠点あなたが製品に戻ってスカンクワークスをマージしないとき、すべてのビルドの変更はすでに行いなる、があるだろうということがありますそうでなければそうであるかもしれないより少ない自動マージ。
ワウ、説明する時間を取ってくれてありがとう匿名のブランチアプローチ私はSVNから来ているので、私はまだクローンの周りを包み込み、水銀でさまざまな「分岐」オプションを囲んでいます。ありがとう! –