web-dev-qa-db-ja.com

SVNエラー - 作業コピーではありません

最近私達の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'があります。

何か案は ?

211
Vijay Dev

再帰的なsvn cleanupを実行したときに「作業コピーではない」と表示された場合、作業コピーとなるはずのディレクトリ(つまり最上位の.svnディレクトリ)があるはずですが、それ自身の.svnディレクトリはありません。 。その場合は、単にそのディレクトリを削除/移動してからローカルアップデート(つまりrm -rf content; svn checkout content)を実行することができます。

not a working copyエラーが発生した場合、Subversionはそこに適切な.svnディレクトリが見つからないことを意味します。 contents.svnディレクトリがあるかどうか確認してください

可能であれば、理想的な解決策は新鮮なチェックアウトです。

123
JesperE

私は別の方法で似たような状況(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

それはうまくいった。

46
Ken Arnold

私はそれを解決しました

  1. 影響を受けるフォルダのバックアップをコピーする
  2. SVNが影響を受けるフォルダを元に戻す
  3. バックアップからファイルを貼り付け直します。

私の場合、問題は削除された.svnファイルが原因でした。

6

たぶんあなたはちょうどフォルダのツリーをコピーして、最も低いものを追加しようとしています。

SVN
|_
  |
  subfolder1
       |
       subfolder2   (here you get an error)

その場合は、上位レベルでディレクトリをコミットする必要があります。

5
Hextler

回避策:「作業コピー」ではないディレクトリの名前を変更します。このディレクトリをもう一度チェックアウト/更新/復元します。名前を変更したディレクトリから新しいコミットにファイルを移動します。

理由:あなたは.svnディレクトリの下のいくつかのファイルにいくつかの変更を加えました。

3
abatishchev

新しいディレクトリ内にファイルを作成した場合は、 'svn add newdir/newfile'ではなく、ディレクトリを追加する必要があるので 'svn add newdir'を使用してください。ディレクトリ内のすべてのファイルがデフォルトで追加されます。

2
HenryF

これは私がしたことです:

  1. trunkの名前をtrunk_に変更
  2. 新しいフォルダトランクを作成する
  3. いくつかのファイルがチェックアウトされた後、プロセスを再チェックアウトしてプロセスを中断
  4. Trunk_からtrunkにファイルを移動します
  5. Svn cleanupを実行します
  6. Svn updateを実行してください。これによりファイルのステータスが更新され、その後すべてのファイルがバージョン管理されます。
1

私は「作業コピーではありません」になったところですが、私にとっての理由はUnix上のAutomouterでした。新しい "cd/path/to/work/directory"だけでうまくいきました。

1
AlexLa

同様に、私は 'contrib'フォルダを更新する必要がありました:

  1. 古いフォルダを移動した
  2. 新しいものをコピーした
  3. .svnフォルダをそれぞれ(私の場合は3つだけ)新しいフォルダにコピーしました。

私の場合も問題は削除された.svnフォルダが原因でした。

解決しました。

1
arieltools

私はsvn diff操作でこの問題にも遭遇します、それは不正確なファイルパスによって引き起こされました、あなたは現在のファイルディレクトリを示すために'./'を加えるべきです。

1
Armstrongya

サブフォルダーからルートフォルダーに.svnフォルダーを貼り付けてみました。できます!!!

1
navin

@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に役立つようにするためです。私はそれ以来私のコメントを削除しました。 ]

0
alastairs

.svnディレクトリが別のマシン上のnfsサーバー上にあり、nfsクライアントがファイルロックサービス(lockd)を実行していないというケースに遭遇しました。

svn: E155007: '/mnt/svnworkdir' is not a working copy

Nfsクライアントホストでlockdが起動されると、これはなくなりました。

ファイルのロックに問題があると、Subversionがより良いエラーメッセージを表示する可能性があります。これはSubversion 1.10.0でした

0
Juan

これと同じ問題が発生した場合、Slik 1.6.2とTortoiseを同じマシンにインストールしたことがわかりました。 Tortoiseは更新されていましたが(そして作業コピーも更新されていましたが)、Slikは更新されていなかったので、Tortoiseは問題なく動作しましたが、コマンドラインは次のように失敗しました。

svn: '。'作業コピーディレクトリではない

TortoiseとSlikの両方を削除してから、コマンドラインツールを有効にしてTortoiseを再インストールすると、この問題が解決します。

0
Twoayem

最近私は他の開発者のMacを使っていました私は同じ状況を持っていました、問題はそうでした。最初に、端末へのget repo pathと入力する必要がありましたが、ユーザー名とパスワードが何であるかということよりも、私はしませんでした。

0
Sam

今日私は午前中に同じ問題を発見しました/FILE_NAME/ is not a working copyそして私はそれを解決するために2時間以上を費やしました。 RNDとグーグルの長い間、私はいくつかの解決策を見つけました、そしてそれはCHECKOUTです。

  1. 新しいプロジェクトとしてCHECKOUTからlocalへのSubversion
  2. Javaファイルのコードの一部を変更してプロジェクトをコミットします。
  3. それは私のために働きます。

お役に立てば幸いです。

0
Chintan Khetiya

svn: 'svn:// repourl/reponame/foldername'のリポジトリにはuuid 'm/reponame'がありますが、トイレには 'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'があります

すべてのSubversionリポジトリには一意の識別子(uuid)があります。 Subversionはこれを使って切り替えのようなことをするときレポが実際に同じであることを確認します。おそらく、サーバー上のUUIDを以前と同じに変更する必要があります。

0
JesperE

macの場合: - サーバー側からチェックアウトすると、すべてのコードを選択したフォルダに入れてからsvnローカル側を開いてプロジェクトを追加してコミットするよりも、新しいウィンドウが開き、ローカルマシンからディレクトリが選択されます。

0
RaviPatidar

それは作業コピーのフォーマットの不一致でしょうか? svn 1.4と1.5の間で変更され、新しいツールは自動的にフォーマットを変換しますが、それから古いものはもはや変換されたコピーで動作しません。

0
agnul

プロジェクトからSVNベースのファイル(読み取り専用ファイル)を削除しておく必要があります。これが原因でこのエラーが発生します。

新しいプロジェクトをもう一度チェックアウトし、 "Winmerge"を使用して古いSVNプロジェクトの変更を新しいプロジェクトとマージし、最新のチェックアウトで変更をコミットします。

0
Samiksha