2012年9月27日

Mercurial(hg)で無関係なリボジトリをマージする

概要

Mercurial(hg)を利用しいて、無関係なリボジトリをマージしたくなる場合があります。
例えば、リボジトリを二つ作成したが一つの方が適切だったとか、オープンソースのある成果を取り込みたい、等様々な場面が考えられます。
Mercurial(hg)では無関係なリボジトリをマージすることも可能です。

手順

「hg pull -f」のように「-f」を付与するのがポイントです。

mkdir myrepo1
hg init myrepo1
mkdir myrepo2
hg init myrepo2
echo "aaaa" > myrepo1/hello.txt
hg add myrepo1/hello.txt
echo "bbbb" > myrepo2/hello.txt
hg add myrepo2/hello.txt
hg ci myrepo1 -m"myrepo1"
hg ci myrepo2 -m"myrepo2"
cd myrepo1
hg pull -f ../myrepo2
hg heads
hg merge tip

あとは普段のマージ作業と同じになります。

まとめ

無関係なリボジトリをマージできる事を知らないと、そもそもやろうとしないかもしれませんが、これは知っているとかなり便利です。
いろいろ活用範囲があるでしょう。

blog comments powered by Disqus