これで髪を引っ張ります。
Subversionを使用してバージョン管理されているサイトがあります。 svnを行うには、aptana(Eclipse、subclipse)を使用します。私はファイルのチェックインとチェックアウト、更新などを行ってきましたが、すべてが順調です。しかし、私たちが構築しているシステムは、独自のファイルとフォルダーを追加しています。
これらをコミットしようとすると、<path>
は作業コピーではありません。クリーンアップしようとすると、同じエラーが発生します。各ファイルをバージョン管理に手動で追加できることがわかりましたが、これは同じエラーをスローします。更新を行っても役に立たず、ワークスペースを更新しても何も起こりません。エラーの後、クリーンアップが停止し、ディレクトリがロックされるようです。
SVNを使用してファイルを追加することになっていることは知っていますが、生成されたファイルをどのように使用しますか?この「<folder>
は作業コピーディレクトリではありません」というエラーですか?Subversionでファイルを参照してリポジトリに追加するにはどうすればよいですか?
今日、書き込み許可を持っていないフォルダー「A」を追加しようとしたときにこの問題が発生しました(したがって、A/.svnフォルダーを作成できませんでした)。
Svn statusを実行すると、フォルダーAの横に「〜」が表示されます。svncleanupを実行すると、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)
作業コピーエラーではないは、現在のフォルダーが[〜#〜] svn [〜#〜]によって正しく初期化されていないことを意味します。。
エラーを修正するには、現在のフォルダーの名前を変更し、プロジェクトの適切な作業コピーを[〜#〜] svn [〜 #〜]プロジェクトのチェックアウトを実行します。
チェックアウトすると、そのプロジェクトの適切に構成された作業コピーが作成されます。
作業コピーで「作業コピーではありません」というエラーが発生しました。これはJDeveloperプロジェクト用であり、インストールしたばかりのJDeveloperアップグレード(11.1.1.2.0)には、コマンドラインSVNアクセス(jsvn)に使用するものよりも新しいバージョンのSVNKitが組み込まれていました。そのため、JDeveloperは.svnファイルの形式を静かにアップグレードしていたため、コマンドライン・クライアントはそれらを理解できませんでした。私のプロジェクトの最上位ディレクトリにjsvnが ".svn/format"ファイルがないと不平を言ったとき、ペニーは落ちました。サブフォルダーにこれらのヒープが見つかりました。すべて同じように見え、数字「9」のみが含まれています。だから私はトップレベルのフォルダにそれをコピーし、jsvnは最終的に適切なメッセージを与えました: "svn:このクライアントは作業コピー '。'で動作するには古すぎます。新しいSubversionクライアントを入手してください"。互換性のあるクライアントSVNKitレベルを(Googleを介して)識別してインストールすると、新しい改良されたjsvnは、作業コピーIS実際に作業コピーであると認識できました。このエラーが発生し、同じマシン上で異なるSVNクライアントを使用している場合、問題はそれらが同期していないことです。
TortoiseSVNを使用して、いくつかの不要なディレクトリをクリーンアップして、これを実行します。ファイルのバックアップを作成してから、repブラウザを使用して障害のあるディレクトリを削除しました(これはとにかく優秀なユーザーでした)。その後、プロジェクトのクリーンアップが機能し、現在のファイルを引き続き使用できます。
問題がどこにあるかを見つけてください。これは、欠落している.svnファイルまたは他の何かですか? .svnファイルは、チェックインが完了すると作成されることに注意してください。また、対応するディレクトリパス、一意の番号がタグ付けされたコード名が含まれます。完全にチェックインされていると思われるプロジェクトのベースパスに移動します。新しい一時パッケージを作成し、そのパスにサンプルJavaコードを追加しました。バージョンに追加してコミットしてみてください。フォルダがロックされているというエラーが表示された場合ロックされたフォルダー)、. svnフォルダーに移動し、ロックファイルの名前を変更します。もう一度チェックインしてコミットしてください
それが正常に動作する場合、それで完了です。同じベースディレクトリを使用し、コードをチェックインした後、そのディレクトリからフォルダレベルに再度チェックインします。
私の場合、Eclipseワークスペースを別の場所に移動すると、問題が発生します。問題を解決するために、svnリポジトリからプロジェクトをチェックアウトします。次に、古いプロジェクトですべてのsvnファイルを削除します。 (簡単な検索.svnおよびdelete)、チェックアウトしたばかりのコンテンツにコンテンツをコピーし、変更が表示されてプロジェクトが最新のものになるようにします。このメソッドは、他の迷惑なエラーに適用できます。誰かを助けることを願っています
別の場所にあるmove
現在のディレクトリを選択して、svn update
command、次に移動したディレクトリでディレクトリを置き換えますtortoisteSVN
を使用する場合、svn updateを実行する前に、ルートディレクトリのクリーンアップを実行できます。
「作業コピーではない」とは、IDEがsvn
を実行しようとしている場所の1つがsvn
自体によって制御されていないことを意味します(ファイルの追加など) svn
の下ではないサブディレクトリ)IDE内のパスを確認してください。
私はすべてのタスクを視覚的なツールで行うため、どのコマンドを実行する必要があるかを伝えることはできません。
これが私の環境、Windows XPです。 tortoiseSVN 1.6.7 with Subversion 1.6.9、Eclipse 3.5 with Subclipse 1.6.10また、リポジトリはWindows上のビジュアルSVNサーバーで管理されます。
お役に立てれば。