お互いに届かない2つのリポジトリにプッシュする

セットアップ:

  • ラップトップL
  • さまざまなリポジトリをホストするオフィスサーバーSOffice
  • 顧客のデータベースサーバーSCustomer

私は顧客のためにLのコードを書いており、定期的にそれをSOfficeとSCustomerの両方にプッシュしたいと思っています。

私は、 changegroup フックを使用して2番目のリポジトリから3番目のリポジトリにプッシュすることができることを知っています(この回答の )が必要ですが、これは第2のネットワークが第3のネットワークに到達できることを要求します。

私の場合は、それぞれファイアウォールの背後にあり、通常はラップトップだけがVPN経由(または物理的に)で両方のアクセスを行います。私はSOffice上でVPNをセットアップしてSCustomerにアクセスすることができましたが、むしろそうしたいと思います。

2つのリポジトリに default を設定する方法はありますか?

6

3 答え

2つのリポジトリにデフォルトすることはできませんが、 hgrc ファイルに複数のリポジトリを定義することができます:

[paths]
default= /path/to/first/repo
scustomer = /path/to/second/repo

次に、 scustomer リポジトリに明示的にプッシュすることができます。

hg push scustomer

一度に両方のリポジトリにプッシュするプロセスを自動化したいのであれば、それを行うMercurialメソッドを知らないのですが、シェルスクリプト、エイリアスなどを作成して、その他。

リポジトリ上のフックを使って自動的に他のものにプッシュすることもできますが、 "手動"プッシュと自動プッシュを区別する必要があります。これは本当に面倒です。

7
追加された
そして、あなたは@ Ry4anによって与えられた拡張子を見るべきです、それはまさにあなたが探しているものであるようです。
追加された 著者 krtek,
私は hgrc に複数のプッシュ位置を設定できることが分かっているはずです。
追加された 著者 Sören Kuklau,

両方の外部リポジトリに自動的にプッシュするフックでリポジトリの2番目のクローンを作成できますか?その後、作業クローンを2番目のクローンにプッシュします。

5
追加された
クリエイティブな答え:)
追加された 著者 krtek,
これは賢いです。 :)
追加された 著者 Sören Kuklau,

MultirepoExtension には、複数のリポジトリで操作を行うためのコマンドが追加されています。

または、エイリアスを作成して、両方のようにプッシュすることもできます。

[aliases]
pushboth = !$HG push http://first ; $HG push http://second

他のプッシュプッシュプッシュフックを作成することもできます。何かのようなもの:

[hooks]
pre-push = hg push http://second

しかし、私はkrtekの答えが一番好きです(そしてupvoted)。それぞれにパスエイリアスを付け、URLの代わりに短い名前で2回押します。

3
追加された
うん、最初にプッシュしたときだけトリガするようにテストする必要があります。私は、その提案を自動化しようとするよりも、2回、実行プッシュを続けます。このような短期間の作業をワークフローに取り入れるだけで、システムを使用していないシステムにいるときに迷惑をかけ、予期せぬ副作用があると混乱することがあります。
追加された 著者 Ry4an Brase,
フックが何らかの無限ループを作り出すのではないでしょうか?フックは2回目のプッシュでトリガーされませんか?ところで、拡張のおかげで、私はそれを認識していなかった
追加された 著者 krtek,
拡張機能とpushbothコマンドエイリアスには、おそらくTorgoiseHg Workbenchから簡単に/直接制御できないという問題があります。私の罰金ですが、私は非デベロッパーにとっても比較的便利なソリューションを探しています。それでも、これらは最も近い。
追加された 著者 Sören Kuklau,