web-dev-qa-db-ja.com

Mercurialにリモートリポジトリを追加するにはどうすればよいですか?

私は次の方法でGitリポジトリを操作しています。

  • マスターリポジトリと、さまざまな本番マシン上にいくつかのリモートがあります。
  • 本番コードをリモートにプッシュし、サービスを再起動して変更を有効にします。

GitからMercurialに切り替えようとしているので、そのようなことをどのように実現できるかを事前に知りたいと思います。

97
topless

ローカルクローンの[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

誰もがリモートリポジトリがPushで作業ディレクトリを自動的に更新することを好むわけではありません。これは確かにデフォルトではありません。

127
Ry4an Brase

デフォルトのパスを追加する場合は、~project/.hg/hgrcファイルでdefaultを操作する必要があります。次のように:

[paths]
default = https://path/to/your/repo

がんばろう。

6
Akash

hg-git GitHubプラグイン を見ることができます:

hg-git general idea

mercurialのGitサーバーリポジトリにプッシュおよびプルする機能を追加します。
これは、MercurialのGitベースのプロジェクトでコラボレーションしたり、GitサーバーをGitとMercurialの両方を使用する開発者とのチームのコラボレーションポイントとして使用したりできることを意味します。

注:Mercurialの最新バージョンでこのツールをテストしたことはありません。

5
VonC

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)の呼び出しの除外が含まれます。

0
Jason R. Coombs