エラー「SVN ‘パス’ is not a working copy」の理由と対処方

先日、SVNを使用しているシステムにてコミットを行おうとした所、

「SVN ‘パス’ is not a working copy」というエラーが発生しました。

自分なりにまとめて調べてみたので、参考までに。

エラーの内容

翻訳をすると「ディレクトリが作業コピーじゃないよ」という内容です。

作業コピーとは何かというと、レポジトリから持ってきたり、逆に反映させたりする作業場所の事です。

なので、「ここ、SVNで管理してる場所じゃなくね?」って事ですね。

エラーの原因

以下の部分を疑ってみると良いと思います。

  • ディレクトリがSVNレポジトリに関連付けられてない
  • 正しくチェックアウトされてない
  • ディレクトリ内の.svnディレクトリが破損している
  • ディレクトリが他の作業コピーの一部だった

対処方

これらのエラー対処方を試してみると良いと思います。

チェックアウトの確認

ディレクトリが正しくチェックアウトされているか確認をしてください。

もし正しくされていなかったら、改めてディレクトリをチェックアウトしましょう。

チェックアウトとは、SVNレポジトリのデータをローカル(自分のPCなど)に持ってくる事を言います。

.svnディレクトリの状態確認

レポジトリからチェックアウトをした際に「.svn」というディレクトリが作られます。

このディレクトリはSVNが内部的に使用する物なので、一般的に私達が触る事はないのですが、万が一破損をしている可能性があります。

.svnディレクトリの再編成

問題のディレクトリで.svnを削除し、再作成を行う事も検討しましょう。

手順としては以下のコマンドを入力します。

svn cleanup
svn update

これをやると.svnディレクトリが再編成されます。

別の場所に移っていないか確認

ディレクトリを間違っており他の作業コピーだった場合などを考慮し、今一度確認を行ってください。