回答:
[paths]
ローカルクローンの.hg/hgrc
ファイルのセクションにエントリを追加します。.hg/hgrc
ファイルに入るセクションの例を次に示します。
[paths]
remote1 = http://path/to/remote1
remote2 = http://path/to/remote2
次にhg push remote1
、そのようなコマンドを使用して、そのリポジトリに変更セットを送信できます。更新するリモートリポジトリが作業ディレクトリである場合は、更新を行うchangegroup
フックをそのリモートの場所に配置する必要があります。それは次のようになります:
[hooks]
changegroup = hg update 2>&1 > /dev/null && path/to/script/restart-server.sh
誰もがリモートリポジトリにプッシュ時に作業ディレクトリを自動的に更新させることの大ファンであるとは限りません。これは確かにデフォルトではありません。
default-push
は、通常のプッシュターゲットが通常のプルソースと異なる場合にのみ必要/有用です。それらが同じである(または引っ張らない)場合は、default
それで十分です。
default-push
ありdefault
、設定ファイルにある場合、最初のものがプッシュに使用され、後者がプルに使用されます。同じリモートリポジトリからプッシュとプルを行う場合(おそらくMercurialを集中管理された方法で使用している場合に行います)、default
ファイルにのみ配置します。最初のプッシュ時にそれを行うための小さなコマンドラインオプションを追加した場合、それはとてもクールです...(または、多分私はCVSの人が多すぎる
.hg/hgrc
(ファイル名の前にDOTがありません)。
あなたはhg-git GitHubプラグインを見ることができます:
MercurialのGitサーバーリポジトリにプッシュおよびプルする機能を追加します。
つまり、MercurialのGitベースのプロジェクトでコラボレーションしたり、GitサーバーをGitとMercurialの両方を使用する開発者とのチームのコラボレーションポイントとして使用したりできます。
注:Mercurialの最新バージョンでそのツールをテストしていません。
Unixを使用していて、Gitがインストールされている場合は、このbash関数を使用して、テキストエディターなしでリモートへのパスを簡単に追加できます。
add-hg-path() {
git config -f $(hg root)/.hg/hgrc --add paths.$1 $2
awk '{$1=$1}1' $(hg root)/.hg/hgrc > /tmp/hgrc.tmp
mv /tmp/hgrc.tmp $(hg root)/.hg/hgrc
}
それからそれを呼び出します:
$ add-hg-path remote1 https://path.to/remote1
誰かがPowershellに相当するものを構築したい場合は、それも含めたいと思います。その他の潜在的な改善には、パラメーターのエラーチェックやへの呼び出しの除外などがあります$(hg root)
。
hg paths
相当するリモコンの使用を見たいだけの人のためにgit remote -v
。