ToroiseSVNを使っていて、こんなエラーが出たときの対処方法
今日会社で質問を受けて答えた内容をせっかくなので公開します。
エラー: Can't open file '{ディレクトリパス}\.svn\text-base\{ファイル名}.svn-base': 指定されたファイルが見つかりません。
Subversionは内部での管理に、.svnというディレクトリを利用しています。
この中にはいくつかの種類のファイルやサブディレクトリがあります。
この中のファイルがなくなったり、整合性が失われたりすると、
自分のローカルとサーバのリポジトリとの交信時にエラーが発生する場合があります。
その一つが、このエラーです。
Can't open file '{ディレクトリパス}\.svn\text-base\{ファイル名}.svn-base': 指定されたファイルが見つかりません。
エラー: File already exists: filesystem '{リポジトリパス}/db', transaction '{番号}', path '{ディレクトリパス}'
何かの行き違いで、誰かと同じようなタイミングで、同じ名前のディレクトリ(またはファイル)を新たにリポジトリに追加してしまうことがあるかもしれません。
これはそんなときに起こるエラーです。
File already exists: filesystem '{リポジトリパス}/db', transaction '{番号}', path '{ディレクトリパス}'
対処方法
一度該当ディレクトリを消して、リポジトリから最新状態を取り込みます。
ただし、その前に自分が編集したファイルなどがあれば、別な場所に移しておいてください。
- 自分が編集したファイルがある場合、それを別な場所にコピーしておく
- {ディレクトリパス}の一つ上のディレクトリに移動する
- {ディレクトリパス}を削除する
- 右クリック⇒TortoiseSVN⇒元にもどす(svn revert)⇒該当ディレクトリを選択⇒OK
- 注意:このステップを抜かすと、以下のようなエラーが出てしまいます
- エラー: Failed to add directory '{ディレクトリ名}': object of the same name is already scheduled for addition
- SVN UP(SVN 更新)をする
- 最初に別の場所にコピーしておいたファイルをもとに戻す
その後、もともとやろうとしていた作業に戻ればOKです。