SQL と Subversion に基づいて、自分のプログラム用の展開ツールを作成しました。
さまざまなバージョンのアプリケーションを作成して Subversion に保存し、それらの情報を SQL に保存することができます。
私の「展開ツール」がうまく機能するまでは問題がありました。
アプリケーションのバージョンを作成するとき、私はヘッド リビジョンをチェックアウトし、プログラムでこれを視覚化します。その後、ファイルやフォルダーを削除、名前変更、追加、または上書きすることで、最新バージョンを編集できます。
たとえば、作業コピーに次のツリー構造があるとします。
- ProgramFiles
- Assemblies
- Data
- Type 1
- ...
- Type 2
- ...
- Type 3
- ...
1 つのディレクトリ (データ) を置き換えたい。これはsvn deleteを呼び出し、その後Directory.Deleteを呼び出します。これは、「svn delete」は、コミットを行うときにフォルダーに削除のマークを付けるだけだからです。ここで、新しいサブフォルダーとファイルを含む「Data」という名前のフォルダーを再度追加したいのですが、「作業コピーの管理領域がありません」という例外が発生します。私が知る限り、ProgramFiles の下のディレクトリ .svn には、フォルダ Data が削除され、このフォルダを読み取るとクラッシュするという情報が格納されています。
また、フォルダーを追加する前にコミットできることも知っていますが、それにより「非安定バージョン」でリビジョン番号が増加します。
どうすればこの問題を解決できますか?