0

デスクトップで Mercurial を使用し、ローカル リポジトリを集中型サーバーにプッシュします。私は、このリモート サーバーがリポジトリにファイルのローカル コピーを保持していないことに気付きました (ディレクトリは明らかに.hg1 つを除いて空です)。

これらのディレクトリにローカル コピーを格納するための推奨される方法は何ですか? (これらは、そのサーバー上のさまざまな無関係なサービスによって使用されます)。

これまでに思いついたのは、フックを使用しhg archiveてローカル コピーを作成することです。これは満足のいく解決策ですが、リポジトリごとのhgrcファイルを構成する必要があります (これは面倒ですが、.NET でこれを一元化する方法が見つかりませんでした/etc/mercurial/hgrc)。グローバル スクリプト ( /etc/mercurial/hgrc各 changegroup イベントに対して実行) でしょうか。if...then(その場合、シナリオで使用するリポジトリ名を取得するにはどうすればよいですか?)

4

1 に答える 1

1

リモートリポジトリにアクセスできる場合は、変更グループが入ってきたときにフックをインストールし、それが発生したhg updateときに実行できます。

これは FAQ (質問 4.21) で簡単に確認できますが、要約/複製する.hg/hgrcには、リモート リポジトリのファイルを編集し、次の行を追加します。

[hooks]
changegroup = hg update

リモート リポジトリがプッシュされるたびに (または実行されるとpull)、最新の変更セットに更新されます。

いくつかの注意点 - リモート側のファイルに変更が加えられている場合、これは失敗する可能性があります (hg update -C代わりに使用できます)。また、匿名ブランチをプッシュした場合 (意識的に強制する必要があります)、更新したいものに更新できない場合があります。

于 2013-04-30T12:24:01.310 に答える