最近私達のSVNサーバーは変更され、そして私達はSVNスイッチをしました。
作業コピーには大量のバージョン管理されていないリソースがあるため、作業コピーがロックされ、svnの下にあるすべてのフォルダに対してフォルダごとにフォルダの切り替えを開始しました。
しかし、リポジトリの最上位レベルで、ファイルを更新しようとすると、svn:Working copyとなります。ロックされたエラーとクリーンアップも助けにはなりません。クリーンアップをするとき、私はこれらのようなエラーを得る - svn: 'content'は作業コピーディレクトリではない
フレッシュチェックアウトはまったく選択肢ではありません。ロックをクリーンアップして解放し、スイッチを完全にする他の方法はありますか?
編集:JesperEの答えの最後の段落
再帰的な "svn cleanup"を実行するときに "作業コピーではない"というメッセージが表示された場合、作業コピーとなるべきディレクトリ(つまりトップレベルの.svnディレクトリ)があると思いますが、それはありません。独自の.svnディレクトリその場合は、単にそのディレクトリを削除/移動してからローカルアップデートを実行することができます。
リポジトリの問題に対する解決策のようです。私はそれらのフォルダを識別し、それらの特定のフォルダのみを新たにチェックアウトしました。うわー、その後のクリーンアップでロックが解除されます! JesperEどうもありがとう!
しかし、私はまだ今のような何かを読むSVNスイッチエラーを把握することはできません、
svn: 'svn:// repourl/reponame/foldername'のリポジトリにはuuid 'm/reponame'がありますが、トイレには 'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'があります。
何か案は ?
再帰的なsvn cleanup
を実行したときに「作業コピーではない」と表示された場合、作業コピーとなるはずのディレクトリ(つまり最上位の.svn
ディレクトリ)があるはずですが、それ自身の.svn
ディレクトリはありません。 。その場合は、単にそのディレクトリを削除/移動してからローカルアップデート(つまりrm -rf content; svn checkout content
)を実行することができます。
not a working copy
エラーが発生した場合、Subversionはそこに適切な.svn
ディレクトリが見つからないことを意味します。 contents
に.svn
ディレクトリがあるかどうか確認してください
可能であれば、理想的な解決策は新鮮なチェックアウトです。
私は別の方法で似たような状況(svn: 'papers' is not a working copy directory
)に陥ったので、私は自分のバトルストーリーを投稿することを考えていました(単純化):
$ svn add papers
svn: Can't create directory 'papers/.svn': Permission denied
おっとっと!権限を修正してください。
$ svn add papers
svn: warning: 'papers' is already under version control
$ svn st
~ papers
$ svn cleanup
svn: 'papers' is not a working copy directory
そしてpapers
を邪魔にならずに動かし、svn up
(OPのために働いた)を実行してもそれを修正しませんでした。これが私がしたことです:
$ mv papers papers_
$ svn cleanup
$ svn revert papers
Reverted 'papers'
$ mv papers_/ papers
$ svn add papers
それはうまくいった。
私はそれを解決しました
私の場合、問題は削除された.svnファイルが原因でした。
たぶんあなたはちょうどフォルダのツリーをコピーして、最も低いものを追加しようとしています。
SVN
|_
|
subfolder1
|
subfolder2 (here you get an error)
その場合は、上位レベルでディレクトリをコミットする必要があります。
回避策:「作業コピー」ではないディレクトリの名前を変更します。このディレクトリをもう一度チェックアウト/更新/復元します。名前を変更したディレクトリから新しいコミットにファイルを移動します。
理由:あなたは.svnディレクトリの下のいくつかのファイルにいくつかの変更を加えました。
新しいディレクトリ内にファイルを作成した場合は、 'svn add newdir/newfile'ではなく、ディレクトリを追加する必要があるので 'svn add newdir'を使用してください。ディレクトリ内のすべてのファイルがデフォルトで追加されます。
これは私がしたことです:
私は「作業コピーではありません」になったところですが、私にとっての理由はUnix上のAutomouterでした。新しい "cd/path/to/work/directory"だけでうまくいきました。
同様に、私は 'contrib'フォルダを更新する必要がありました:
私の場合も問題は削除された.svnフォルダが原因でした。
解決しました。
私はsvn diff操作でこの問題にも遭遇します、それは不正確なファイルパスによって引き起こされました、あなたは現在のファイルディレクトリを示すために'./'
を加えるべきです。
サブフォルダーからルートフォルダーに.svnフォルダーを貼り付けてみました。できます!!!
@JesperE は、uuidを変更する必要があることを と述べています。以下は、これを達成するのに役立ちます。
SVN 1.5以降では、svnadmin setuuidを実行できます。その後、svnlook uuidを使って正しく設定されていることを確認できます。 SVNの以前のバージョンでは、それはより難しいプロセスです。 http://chestofbooks.com/computers/revision-control/Subversion-svn/Managing-Repository-UUIDs-Reposadmin-Maint-Uuids.html を参照してください。
さらに、 "m/reponame"のUUIDは疑わしく見えます。私はそれが作業コピーのように16進数で書かれた数字であるべきだと信じています、それで多分このアクションは事をすべて改善するでしょう:-)
[私はもともと @ JesperEの回答 についてコメントしましたが、この回答を作成したのは、よりわかりやすく、Googleに役立つようにするためです。私はそれ以来私のコメントを削除しました。 ]
.svnディレクトリが別のマシン上のnfsサーバー上にあり、nfsクライアントがファイルロックサービス(lockd
)を実行していないというケースに遭遇しました。
svn: E155007: '/mnt/svnworkdir' is not a working copy
Nfsクライアントホストでlockd
が起動されると、これはなくなりました。
ファイルのロックに問題があると、Subversionがより良いエラーメッセージを表示する可能性があります。これはSubversion 1.10.0でした
これと同じ問題が発生した場合、Slik 1.6.2とTortoiseを同じマシンにインストールしたことがわかりました。 Tortoiseは更新されていましたが(そして作業コピーも更新されていましたが)、Slikは更新されていなかったので、Tortoiseは問題なく動作しましたが、コマンドラインは次のように失敗しました。
svn: '。'作業コピーディレクトリではない
TortoiseとSlikの両方を削除してから、コマンドラインツールを有効にしてTortoiseを再インストールすると、この問題が解決します。
最近私は他の開発者のMacを使っていました私は同じ状況を持っていました、問題はそうでした。最初に、端末へのget repo pathと入力する必要がありましたが、ユーザー名とパスワードが何であるかということよりも、私はしませんでした。
今日私は午前中に同じ問題を発見しました/FILE_NAME/ is not a working copy
そして私はそれを解決するために2時間以上を費やしました。 RNDとグーグルの長い間、私はいくつかの解決策を見つけました、そしてそれはCHECKOUT
です。
CHECKOUT
からlocalへのSubversion
。お役に立てば幸いです。
svn: 'svn:// repourl/reponame/foldername'のリポジトリにはuuid 'm/reponame'がありますが、トイレには 'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'があります
すべてのSubversionリポジトリには一意の識別子(uuid)があります。 Subversionはこれを使って切り替えのようなことをするときレポが実際に同じであることを確認します。おそらく、サーバー上のUUIDを以前と同じに変更する必要があります。
macの場合: - サーバー側からチェックアウトすると、すべてのコードを選択したフォルダに入れてからsvnローカル側を開いてプロジェクトを追加してコミットするよりも、新しいウィンドウが開き、ローカルマシンからディレクトリが選択されます。
それは作業コピーのフォーマットの不一致でしょうか? svn 1.4と1.5の間で変更され、新しいツールは自動的にフォーマットを変換しますが、それから古いものはもはや変換されたコピーで動作しません。
プロジェクトからSVNベースのファイル(読み取り専用ファイル)を削除しておく必要があります。これが原因でこのエラーが発生します。
新しいプロジェクトをもう一度チェックアウトし、 "Winmerge"を使用して古いSVNプロジェクトの変更を新しいプロジェクトとマージし、最新のチェックアウトで変更をコミットします。