私は次の方法で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
誰もがリモートリポジトリがPushで作業ディレクトリを自動的に更新することを好むわけではありません。これは確かにデフォルトではありません。
デフォルトのパスを追加する場合は、~project/.hg/hgrc
ファイルでdefault
を操作する必要があります。次のように:
[paths]
default = https://path/to/your/repo
がんばろう。
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)
の呼び出しの除外が含まれます。