2012-02-16 3 views
3

私たちのディスクが壊れてしまった後に対処する方法を教えてもらえますか?古い状態。それは物語です:ディスクの破損/復元がmaster-repoを古い状態に戻したときにMercurialを処理する方法

私はMercurialで管理するコードをいくつか持っています。タイムラインは、マスター・リポジトリとこの

  1. スタートのように見えるディスクB上のブランチ/クローンがあり、ディスクAの「マスター」のリポジトリであり、 。 の新しい機能を試作するための現存する様々なブランチ/クローンがあります。
  2. ディスクAの
  3. クローンマスターレポ - ディスクB
  4. 上>別の新しいブランチ
  5. ディスクAが破損しているレポをマスターするために変更をコミットし、新しいブランチにプッシュ
  6. ディスクAが時点での状態に復元されるに1.
  7. ディスクBは、私が何をすべき

影響を受けているのですか?

オプション1: - 実際の分岐以降、ブランチにはほとんど何も起こりませんでした。だから マスターリポジトリを吹き飛ばして、新しいブランチを新しいマスターとして使用し始めます。私がこれをしたら、 私の古いクローン(タイムポイント0で言及された)をマージする際に問題がありますか?

オプション2: - 私のマスターでは、新しいブランチで自分のディペンションを失った変更を手動で行うだけです。私がこれをしても、私はどのように新しい支店に進もうとしていますか?

オプション3: - 私のマスターでは、新しいブランチで自分のディペンションを失った変更を手動で行うだけです。次に、新しいブランチを削除し、新しいブランチをクローンします。

何かアドバイスが 歓声 ザム

+0

私は自分の質問に答えて、あなたの時間を無駄にしないようにします。 私の新しい支店はディスクAにもなっていました。だから問題は冗長です。 私はいくつかの仕事を失い、やり直す必要がありますが、少なくとも私のリポジトリはすべて です。 歓迎 Zam – user1213546

+0

あなたの答えを下記のように追加してください。あなたは2日後にそれを受け入れることができ、あなたの質問は未回答の質問タブから消えます。 –

答えて

3

を歓迎私はあなたが質問が回答されたと言う知っているが、私はとにかく、いくつかのアドバイスを提供しましょう。

オプション1:実際の分岐以来、ブランチにはほとんど何も起こりませんでした。だから、マスターレポを吹き飛ばして、新しいブランチを新しいマスターとして使い始めることができます。私がこれを行うと、私の古いクローン(タイムポイント0で言及されている)をマージする際に問題はありませんか?

マスターリポジトリの古いクローンをマージする際に問題はありません。あなたがマスターレポMとクローンXYを持っていると想像してください。のは、(時間が右に流れる)、彼らはこのような変更を含むとしましょう:[m2]が行われた後

M: [m1] --- [m2] --- [m3] 

X: [m1] --- [x1] --- [x2] 

Y: [m1] --- [m2] --- [y1] --- [y2] 

だから X[m1]が存在 Mのクローンで、 YMのクローンです。 XY[m3]である - このチェンジセットはサーバ上で作業することによって明らかに Mリポジトリにコミットされています。

Mのディスクに障害があり、バックアップから復元していることが確認されました。バックアップには[m1]しかありません。それはクローン(XY)のいずれかになかった一つです:あなたが唯一のチェンジ[m3]が欠落していることがわかります全体の状況を比較すると

M: [m1] 

X: [m1] --- [x1] --- [x2] 

Y: [m1] --- [m2] --- [y1] --- [y2] 

:世界の状況は次のようになります。

復元後、できるだけ多くのデータを復元するために、[m2]YからMにプッシュできます。これは、単純な

m2が問題のリビジョン番号やチェンジハッシュです
$ hg push -r m2 

で行われます。

私はあなたのクローンを見つけて、それらの間にどのようなチェンジセットがまだ分散していて、何が欠けているのかを把握することをお勧めします。あなたはそれが唯一の単一のクローンに存在していたので、あなただけの[m2]を失ったことも

注:-)より頻繁なバックアップとバックアップスキームバックマスター・リポジトリとセットアップに必要なものを押してください。通常、ローカルのクローンで新しいチェンジセットを作成し、それをマスターリポジトリにプッシュします。こうすることで、マスターにすべてのチェンジセットの複製が自動的に作成されます!それは、人々が復元後に自分の仕事を押し戻すだけなので、チェンジセットを失うことを難しくします。

+0

これはとても便利です - ありがとう! – user1213546

関連する問題