バックアップ以降に行われた変更はリポジトリに存在しないため、復元されたリポジトリから全員が新たにチェックアウトする必要があります。(リビジョン番号が変更されており、変更しないと混乱する可能性があります。)
開発者のローカルコピーからの変更を回収することに関しては、はい、それはかなり手動になります。ただし、「diff」と「patch」はあなたの友達です。cygwinに慣れていない場合は、それを取得して、diff、patch、diffutils、およびpatchutilsパッケージを取得して、「diff」コマンドと「patch」コマンドを使用することをお勧めします。「diff」コマンドを使用して、ソースツリーの1つのコピーと別のコピーの間のデルタを含むファイルを作成できます。次のように使用することをお勧めします。
diff -urN --exclude=.svn fresh_check_from_new_repo old_working_copy > developer1changes.patch
各開発者の作業コピーに対してそれを行います。これらのファイルを取得し、次のような「patch」コマンドを使用して、変更を新しいチェックアウトに適用できます。
cd working_copy
patch -p1 -i ...../developer1changes.patch
これで、変更を加えた作業コピーが作成されます。(ただし、svn add、svn rms、およびプロパティの変更はありません。)そこから、何をコミットする必要があるかを判断します。
「filterdiff」コマンドを使用して、パッチファイルを取り出し、変更の一部をフィルタリングして、パッチにパイプすることができます。これにより、それらの変更のみが適用されます。
編集:
別のオプション:開発者ごとに、ブランチを作成してそのブランチをチェックアウトし、ローカルコピーをその新しい作業コピー内のファイルにコピーしてコミットします。
これにより、リポジトリ内のすべての作業が失われることはありません。次に、ブランチをトランクにマージしようとするときに、競合に対処する必要があります。その時点で、GUIツールを使用して、保持またはトスする変更を選択できるようになります。
しかし、簡単な答えは次のとおりです。リポジトリの最新のバックアップがないため、やるべきことがたくさんあります。したがって、すべてが再び機能できるようになったら、はるかに頻繁なバックアップスケジュールを設定します。 。