hg(Mercurial)でfork(clone)元のリポジトリの変更を反映させる方法

https://unsplash.com/search/photos/wordpress?photo=OqtafYT5kTw
Ilya Pavlov

 hg(Mercurial)でfork元リポジトリの変更を反映させる方法が、あるはずなのですが、探しても404 not foundになってたりbitbucketのサービス関連のものだったりして、少々ややこしかったので、Wayback Machineなども使って調べた結果をここに書いておきます。
 要するに、所謂Gitにおける「git remote add origin フォーク元」及び「git fetch origin」と「git merge origin/master」です。

広告

備考: gitの場合

 先にも書きましたが、gitの場合は

git remote add origin フォーク元リポジトリ

 でそのリポジトリのリモートとしてフォーク元リポジトリを指定しておくことで、フォーク元リポジトリを記録しておけます。

 フォーク元の変更を取り込むときは、

git fetch origin

 で内容を取得し、
git merge origin/master

 でマージして反映、という感じの模様。

hg(Mercurial)の場合

 hgの場合、remote add等ではなく、リポジトリ毎のローカルに存在する.hgrcファイルを編集してfork元リポジトリを記録し、そこからpullでfork元のリポジトリを反映させることになります。

 おそらく、fork(clone)した後の状態だと、ローカルのリポジトリ内にある.hgrcファイルでは、

[paths]
default = fork元リポジトリ

となっているはずです。
 ですが、このままだと後々のPUSH先がfork元リポジトリになってしまい、色々ややこしいので、
[paths]
default = PUSH先リモートリポジトリ
origin = fork元リポジトリ

というように、パスを追加することで、リモートリポジトリのアドレスを変更し、かつ増やすことができます。なお、originの部分は任意の名前にすることが可能です。
 この変更を行った後、

hg pull origin

を行うことでfork元の変更を反映させる、という形になります。

 試していませんが、おそらくhg-git環境でも、これでfork元のgitリポジトリを追えるのではないかと思います。

その他コメントなど

 GitもMercurialも便利ですね。hg-gitのおかげで、gitリポジトリもhgで扱えるのはとても助かります。

広告

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA