2012-01-16 8 views
3

私は幸いにHgSubversionをしばらく使用していましたが、今日は--svnをrebaseコマンドに追加するのを忘れていました。 今私は恐ろしい未知のリビジョンを得る 'リベース後のHgSubversion Repoを-svnなしで修正する

これから回復する方法はありますか?私はこの問題を解決するためにtransplant拡張子を使用して試してみた

+0

トレースバックが役に立ちます。あなたは '--traceback'でコマンドを実行できますか? –

+0

また、いつ「恐ろしい未知の復活xxx」を手に入れますか?いずれの場合も、ローカル(まだプッシュされていない)もの、またはそれに類するものの上に「変換されたリビジョン」をリベースしましたか? – pmezard

+0

私は今、リポジトリを吹き飛ばしました。私は--svnなしで再編成された変更(1つの新しいリビジョンがありました)(私は2つの非プッシュリビジョンを持っていました)を引っ張りました。それから私はプッシュしようとしました。プルしようとしました...エラー –

答えて

1

  1. 再クローン新しいローカルリポジトリへのSVNリポジトリ。
  2. 元のリポジトリの歴史を調べ、変更がたとえば新しいリポジトリ

  • 移植に古いリポジトリからの変更を移動する必要があるかに注意してください - と呼ばれるhgsubversionレポproject固定:

    > hg clone svn+http://svnrepo/project project-tmp 
    

    元のプロジェクトフォルダのログを調べて、project-tmpフォルダから次の操作を実行します。

    > hg transplant -s ../project 1234 
    

    ここで、1234は、移動するリビジョンです。すべてのリビジョンがコピーされるまでこれを繰り返します。

    これが終わったら、古いフォルダの代わりに新しいフォルダを使うことができるはずです。SVNから再度プルして、変更を元に戻して戻します(--svnを忘れないでください)

  • +0

    私は答えとしてマークします。しかし、私は遠く離れているため、完全な再クローンを必要としないソリューションを本当に望んでいました。私はこれらの種類のバックアップコピーを保管しておきます。 –

    5

    "hg svn rebuildmeta"を実行してから "hg pull"を実行して修復する必要があります。

    注:これはテストされていないので、私はローカルのレポを複製しています。コードの私の記憶は、これがうまくいくことを示唆しています。

    +0

    これは時々動作します、私は今日この混乱に自分自身を持っていて、再構築はうまくいった! –

    関連する問題