26

これで髪を抜いています。

Subversionを使用してバージョン管理されているサイトがあります。aptana(eclipse、subclipse)を使用してsvnを実行します。私はファイルのチェックインとチェックアウト、更新などを行ってきましたが、すべて問題ありません。ただし、私たちが構築しているシステムは、独自のファイルとフォルダーを追加しています。

これらをコミットしようとすると<path>、作業コピーではないことがわかります。クリーンアップを実行しようとすると、同じエラーが発生します。各ファイルを手動でバージョン管理に追加できることがわかりましたが、これは同じエラーをスローします。更新を行っても役に立ちません。ワークスペースを更新しても何も起こりません。エラー後にクリーンアップが終了したようで、ディレクトリがロックされています。

SVNを使用してファイルを追加することになっていることは知っていますが、生成されたファイルをどのように処理しますか?<folder>この「作業コピーディレクトリではありません」エラーを回避するにはどうすればよいですか?Subversionでファイルを調べてリポジトリに追加するにはどうすればよいですか?

4

10 に答える 10

26

今日、書き込み権限のないフォルダー「A」を追加しようとしたときに、この問題が発生しました (そのため、A/.svn フォルダーを作成できませんでした)。

svn status を実行すると、フォルダー A の横に「~」が表示されました。svn cleanup を実行すると、A の親がロックされていることがわかりました。

最終的に機能したのは次のとおりです。

cp -r A A~    # backup, since A was not in the repo
rm -rf A      # removed locked directory
svn rm A      # remove A from pending commit
mv ~A A       # restore backup
svn add A     # re-add to pending commit
svn cleanup   # (had to cleanup several parent folders higher as well)
于 2009-05-05T17:53:13.697 に答える
20

生成されたファイルをSVNに追加する場合は、を使用svn addして再帰的に追加します。これにより、すべてのディレクトリが作業コピーの一部になり、すべてのファイルとディレクトリがSVNに追加され、の一部としてコミットされます。次へsvn commit

ただし、多くの場合、生成されたファイルとフォルダーは、ビルドの一部としてソースファイルから生成されるため、SVNに追加しないでください。この場合、作業コピーの一部にならないように、 svn:ignoreでマークを付ける必要があります。

于 2008-12-15T13:07:06.293 に答える
11

作業コピーではないというエラーは、現在のフォルダーがSVNによって正しく初期化されていないことを意味します。

エラーを修正するには、現在のフォルダーの名前を変更し、プロジェクトのチェックアウトを実行して、SVNからプロジェクトの適切な作業コピーを取得します

チェックアウトにより、そのプロジェクトの適切に構成された作業コピーが作成されます。

于 2008-12-16T13:27:00.620 に答える
2

作業中のコピーで「作業中のコピーではありません」というエラーが発生しました。これはJDeveloperプロジェクト用であり、インストールしたばかりのJDeveloperアップグレード(11.1.1.2.0)には、コマンドラインSVNアクセス(jsvn)に使用するバージョンよりも新しいバージョンのSVNKitが組み込まれていることがわかりました。そのため、JDeveloperは.svnファイルのフォーマットを静かにアップグレードしていました。これは、コマンドラインクライアントがそれらを理解できないことを意味していました。jsvnが私のプロジェクトのトップレベルディレクトリにファイル「.svn/format」がないことについて不平を言ったとき、ペニーは落ちました。これらのヒープがサブフォルダーにあり、すべて同じように見え、数字の「9」のみが含まれていることがわかりました。そこで、1つをトップレベルのフォルダーにコピーし、jsvnが最終的に適切なメッセージを表示しました。

于 2009-11-17T15:52:51.550 に答える
1

問題がどこにあるかを調べてみてください。これは欠落している.svnファイルか何か他のものですか。チェックインが完了すると、.svnファイルが作成されることを忘れないでください。対応するディレクトリパス、一意の番号がタグ付けされたコード名が含まれています。完全にチェックインされていると思われるプロジェクトのベースパスに移動します。新しい一時パッケージを作成し、そのパスにサンプルJavaコードを追加しました。バージョンに追加して、コミットしてみてください。フォルダがロックされている(すでにロックされているフォルダをロックしようとしている)というエラーが表示された場合は、.svnフォルダに移動してロックファイルの名前を変更します。チェックインしてコミットしてみてください

正常に動作する場合は、これで完了です。同じベースディレクトリを使用し、クリーンアップした後、そのディレクトリからフォルダレベルまでコードを再度チェックインします。

于 2011-09-01T23:00:03.613 に答える
1

TortoiseSVN を使用して、いくつかのデッドディレクトリをクリーンアップして、これに遭遇しました。私はファイルのバックアップを作成し、rep ブラウザーを使用して障害のあるディレクトリを削除しました (とにかくこれは無駄でした)。その後、プロジェクトのクリーンアップが機能し、現在のファイルを引き続き使用できるようになりました。

于 2010-02-13T07:42:26.497 に答える
0

「作業コピーではない」とは、IDEが実行しようとしている場所の1つがそれ自体svnで制御されていないことを意味しsvnます(下にないサブディレクトリにファイルを追加するなどsvn)。IDE内のパスを確認してください。

于 2008-12-15T13:00:57.350 に答える
0

move現在のディレクトリを別の場所に置き、コマンドを実行してから 、使用する場合svn updateはディレクトリを移動したディレクトリに置き換えます。svn update を実行する前に、ルート ディレクトリのクリーンアップを実行できます。
tortoisteSVN

于 2016-08-28T06:35:00.007 に答える
0

私はすべてのタスクをビジュアル ツールで行っているため、どのコマンドを実行する必要があるかはわかりません。

これが私の環境、Windows XPです。tortoiseSVN 1.6.7 と Subversion 1.6.9、Eclipse 3.5 と Subclipse 1.6.10。リポジトリは、Windows 上のビジュアル SVN サーバーで管理されます。

  1. ビジュアルsvnサーバーで、他のツールによって作成されたフォルダーを削除しました(Keltiaが言ったように、これが問題でした)。
  2. 私のWindowsエクスプローラーで私のプロジェクトを右クリックし、tortoise SVN press updateのオプションを使用します。このアクションにより、フォルダーは作業コピーで削除されました。
  3. すべての変更をコミットしました。
  4. フォルダーを作成するツールを(再度)実行しました。
  5. tortoise SVN でadd to ignore listとマークしました。

お役に立てれば。

于 2010-04-15T17:14:50.703 に答える