3

リポジトリを完全に失い、コミットされていない変更を加えた開発者が8人います。バックアップからの復元は不可能であると想定されています。

1人のユーザーがすべての作業コピー(ファイルコピーまたはリモート共有)にアクセスできる場合、作業コピーの変更を1つの作業コピーにマージすることは可能ですか?その後、最終的な作業コピーを新しいリポジトリにインポートできます。

つまり、サーバーなしで2つの異なる作業コピーをマージできますか?

編集:バックアップがないことで私をうんざりさせないでください。その部分は私のコントロールを超えています。彼らは毎晩バックアップされていると想定されていました。

フォローアップ:これは私たちがしたことです:

  1. すべての開発者の最新の作業コピーから始めました。
  2. それを新しいリポジトリにインポートしました。
  3. 最新の作業コピーリビジョンから最も古いものに作業し、変更が加えられたファイルのみにコピーされてからコミットされます。
  4. ウォッシュリンスを6回繰り返します。(2人の開発者にはコミットされていない変更はありませんでした)。
  5. 古い作業コピーをすべてエクスポートし、圧縮して、必要に応じて安全に保管できるように保管しました。
  6. リリース管理データベースのリビジョンを、現在は非常に若いリポジトリに更新しました。
4

7 に答える 7

4

リポジトリを失ったため (申し訳ありません)、履歴全体も失われました。

今できることはゼロから始めることだけです。

  1. 新しいリポジトリを作成する
  2. フォルダ構造を作成する
  3. 最初のユーザーの作業コピーを新しいフォルダーにエクスポートします
  4. エクスポートされたフォルダーをリポジトリにインポートします
  5. 他のすべてのユーザーが新しい作業コピーをチェックアウトするようになりました
  6. 他のすべてのユーザーは、元の作業コピーを新しい作業コピーの上に「エクスポート」します

「エクスポート」とは、作業コピーのコピーを作成することを意味しますが、その中に隠し .svn フォルダーはありません。

于 2009-01-20T19:52:19.073 に答える
1

こんにちはトリッキーな問題です。しかし、これは私がすることです。

  1. 新しいリポジトリを作成します。
  2. 8 つの枝と 1 つの幹を作成する
  3. 開発者の作業をブランチにインポートします。
    • ブランチ 1 の開発者 1
    • ブランチ 2 の開発者 2
    • などなど
  4. 次に、ブランチ 1 からトランクへのマージを開始します。そして幹の状態が安定したら分岐2などに進みます。

そして、この恐ろしい作業が終わったら、開発者に早期かつ頻繁にチェックインする方法を教えてください...そしてブランチの使い方...

/ヨハン

于 2009-01-20T19:49:08.440 に答える
0

問題は、サーバーを失ったことではなく、リポジトリ自体を失ったことです。新しいリポジトリを再作成し、インポートするためにさまざまな作業コピーを慎重に並べ替える以外に、何ができるかわかりません。幸運を。

PS:バックアップがないのは悪いことです...

PPS:これは、DVCSがすべての開発者のサンドボックスにリポジトリの完全なコピーを持っていることで、自然に解決する種類の問題です。

于 2009-01-20T19:17:31.857 に答える
0

最も簡単な方法は、独自のサーバーを作成し、テストリポジトリを作成し、その中に1つの(最も安定した)ビルドを追加して、作業コピーを一度に1つずつマージすることです。しかし、はい、古いリポジトリを失ったため、すべての履歴を失いました。

次に、そのテストリポジトリからメインリポジトリを作成できます。

于 2009-01-20T19:20:22.320 に答える
0

新しいリポジトリのインポートを行う作業コピーを1つ選び、残りの7つの作業コピーをsvn switchを使用して、場合によってはrelocateを使用して、その新しいリポジトリに再ポイントし、同じリポジトリであるが再配置されたと信じ込ませます。失われたリポジトリからの構造上の変更がない(または可能な限り少ない)初期インポートの作業コピーを選択してみてください。たとえば、ファイルの編集だけです。

もちろん、上記が機能しない場合に備えて、作業コピーのバックアップを大量に作成してください:)

于 2009-01-20T19:20:29.323 に答える
0

最も元の作業コピーから古いリポジトリと同じ場所に新しいリポジトリを作成します (そうすれば、新しいリポジトリでより多くの履歴を取得できます)。

うまくいかない場合は、新しいリポジトリのチェックアウトから .svn-directories を入れてください。(たとえば、チェックアウトし、.svn ディレクトリ以外をすべて削除します)

于 2010-02-15T22:06:33.913 に答える
0

Subversion は、ファイルの元のバージョンをローカルの作業コピーに保持します。新しいリポジトリを作成し、最も古い作業コピーのコピーを作成し、作業コピーの COPY の変更を元に戻し、その作業コピーを新しいリポジトリにインポートします。

svn インポート: http://svnbook.red-bean.com/en/1.0/re12.html

インポートしたら、svn switch --relocate を使用して他の作業コピーを新しいリポジトリに再ポイントし、変更をコミットできます。

svn スイッチ --relocate: http://svnbook.red-bean.com/en/1.1/ch04s05.html

于 2009-01-20T19:43:18.683 に答える