104

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

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

私はGitからMercurialに切り替えようとしていますが、そのようなことをどのように達成できるかを前もって知りたいと思います。

4

4 に答える 4

135

[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

誰もがリモートリポジトリにプッシュ時に作業ディレクトリを自動的に更新させることの大ファンではありません。それは確かにデフォルトではありません。

于 2011-02-10T15:42:44.313 に答える
10

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

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

幸運を。

于 2016-08-23T09:16:23.823 に答える
5

あなたはhg-gitGitHubプラグインを見ることができます:

hg-gitの一般的な考え方

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

注:最新バージョンのMercurialでそのツールをテストしていません。

于 2011-02-10T11:56:10.560 に答える
0

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)

于 2016-08-19T16:19:35.487 に答える