私は次の方法でGitリポジトリを操作しています。
- マスターリポジトリといくつかのリモートが異なる本番マシンにあります。
- プロダクションコードをリモートにプッシュし、サービスを再起動して変更を有効にします。
私はGitからMercurialに切り替えようとしていますが、そのようなことをどのように達成できるかを前もって知りたいと思います。
私は次の方法でGitリポジトリを操作しています。
私はGitからMercurialに切り替えようとしていますが、そのようなことをどのように達成できるかを前もって知りたいと思います。
[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
ます~project/.hg/hgrc
。次のように:
[paths]
default = https://path/to/your/repo
幸運を。
あなたはhg-gitGitHubプラグインを見ることができます:
MercurialのGitサーバーリポジトリにプッシュおよびプルする機能を追加します。つまり、MercurialのGitベースのプロジェクトでコラボレーションしたり、GitとMercurialの両方を使用する開発者とのチームのコラボレーションポイントとしてGitサーバーを使用したりできます。
注:最新バージョンの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)
。