Subversion の不適切な使用が原因で発生した問題のトラブルシューティングを依頼されています (私の知る限り)。
これは、時間の経過、ユーザーの混乱などによって損なわれた歴史ですが、私が把握できる最高のものです。意図された目標は、特定の時点でファイル セットをアーカイブすることでした (基本的にリポジトリにタグを付けるためですが、ユーザーはこれを知りませんでした)。
- ユーザーは作業ディレクトリをチェックアウトしています
- タグを作成する代わりに、ユーザーは UNIX コピー コマンド (SVN の移動や SVN のコピーではない) を使用してファイルを作業コピー内のサブ フォルダーにコピーしました。
- たとえば、作業コピーは /var/tmp/working で、ファイルを var/tmp/working/todays_date にコピーしました
- ユーザーは、いくつかの .svn ディレクトリがこの新しいディレクトリにないことに気付いたので、.svn フォルダーを別のディレクトリ (場所がわからない) から「タグ」付きのディレクトリにコピーしました。
これはそれを修正する最良の方法ですか?
私は次のことを試してみようと考えています:
- 間違ったサブディレクトリにあるすべての .svn フォルダを再帰的に削除します
- ディレクトリをリポジトリからローカルにコピーします
- 最後のコミットの前に作業ディレクトリをチェックアウトする
- 新しい作業ディレクトリのファイルを「エクスポートされた」ファイルで上書きします
- 通常の更新/コミットプロセスを実行します
- タグを作成する
これは理にかなっていますか、それとも私は他の問題に心を開いていますか?
その他の質問
- このユーザーが二度と同じことをしないように教育する最善の方法は何ですか?
更新: 詳細情報
ユーザーから次の情報を入手しました。
- 私は作業を行い、svn add を試みました。
- 次に、svn commit を実行すると、いくつかのエラーが発生しました。
- その時点で.svnファイルを移動し、最終的にsvnの追加とコミットをエラーなしで実行しました
- ただし、svn log にはコミットのログ メッセージは表示されません。
そのため、ユーザーがコミットを機能させようとして .svn フォルダーをコピーしたように見えます。その後、追加してコミットしたようです。