web-dev-qa-db-ja.com

「前の操作が終わっていない」ためにSubversionが動かなくなった?

Subversionリポジトリを更新しようとすると、クリーンアップを実行する必要があると言われます。クリーンアップを実行すると、ファイルが見つからないと表示されます。 (私は今朝自宅のPCからコミットに失敗したファイルのMASSIVEディレクトリを削除しましたが、その後仕事から同じファイルのセットをコミットし、そして今私の自宅のレポはバストです)だから、クリーンアップは言う:

クリーンアップでblablablaの処理に失敗しましたファイルblablablaの読み取り/書き込みを設定できません:システムは指定されたファイルを見つけることができません。

私が更新すればそれは言う:

コマンド:更新エラー:前の操作は終了していません。中断された場合は 'cleanup'を実行してくださいエラー: 'Cleanup'コマンドを実行してください。完了しました。

これをどうやって解決できないのですか?

215
coderama

私は同じような状況にありました。ワークスペースのルートからクリーンアップを実行してみましたか?子ディレクトリ(問題がある場所)からのクリーンアップがうまくいかず、ワークスペースのルートからのクリーンアップがうまくいかないこともあります。

それでも失敗する場合は、どこかの子ディレクトリを削除したためです。同様に、子ディレクトリから1レベル上のレベルを削除し(それがルートではないと仮定して)、アップデートとクリーンアップを再試行します。

クリーンアップの試みがどのレベルでも成功しない場合、その答えは残念ながら新しい作業コピーをチェックアウトすることです。

93
Joshua McKinnon

多くの場合、新しいチェックアウトやコピーは必要ありません。

私はちょうどこれからの助けを借りて、「以前の操作が終了していません」というエラーに関する同様の問題を解決しました( Link

コマンドや操作を処理している間にsvnが動かなくなることがあるようです。これらの操作はすべて、.svnフォルダ内のデータベースファイルwc.dbに格納されています。

私のチェックアウトディレクトリに SQLite をダウンロードして実行することで

sqlite3.exe .svn/wc.db "select * from work_queue"

保留中のすべての操作のリストを取得できます。これらの操作は、エラーが「未完了」としている操作です。

実行して

sqlite3.exe .svn/wc.db "delete from work_queue"

古い操作はすべて作業キューから削除され、エラーが消えます。新しいチェックアウトなどは必要ありません

321
Sigurd V

コンソールsvn cleanupを実行しても同じ問題が解決しました。

108
user2902464

私はちょうど同様の問題を抱えていました。 Process Explorerを実行すると、別のプログラム(Notepad ++)がSVNが削除しようとしたフォルダへのファイルハンドルを持っていることがわかりました。 Notepad ++を閉じたとき、 "Clean Up"は正常に実行できました。

25
Glen Little

私はすでにSVNに入っているjarファイルを追加した後にこの問題に直面していましたが、同じ名前の新しいバージョンを追加しました。

Eclipseではこれを試しました

  1. フォルダ>チーム>更新/クリーンアップを右クリックします。
  2. アプリケーションをクリーンアップ、ビルド、および更新します。
  3. Eclipseを再起動してください。

上記の手順を使用して、同期することができます。

18
Rakesh Chouhan

私はここで最も投票された答えを試してみましたが、他の何人かは役に立ちませんでした。私のWORK_QUEUEテーブルは空だったので、上位のフォルダでクリーンアップを試すことができませんでした。 仕事したことは以下の通りです(これはTortoise SVN経由です)。

  • フォルダを右クリック
  • TortoiseSVNに移動 - >クリーンアップ...
  • Break Locksへのオプションがチェックされていることを確認して、OKをクリックしてください。

クリーンアップ操作は正常に完了し、続行できます。 sqlite3やその他の複雑なソリューションのダウンロードは不要です。

14
DiskJunky

ファイルが開いているときにクリーンアップを実行しようとすると問題が発生しました。アプリケーションを閉じるとすぐに(Visual Studio)クリーンアップされ、成功しました。

9
John

私は同じ問題を抱えていた、私の場合私は私が意味するアプリケーションでSVN亀を使用していた。ルートモードでWindowsのcmdシェルを使用して、私はsvn cleanupを適用してからsvn updateを適用しました。

4
GutiMac

私は同じ問題を抱えていました、そして、どういうわけか私がc:\レベルで隠された.svnファイルを持っていたことがわかりました。この隠しフォルダ(.svn)を削除すると、すべてうまくいきました。意図せずにルートドライブに作業ディレクトリを作成したに違いありません。

2
mike gold

.svnフォルダを別の場所に移動して、同じルートフォルダに戻しました。 SVNを更新しようとした後、更新されました。それがどのように正確に機能したのかはわかりません。

2
Ajayvignesh

私の場合は、問題を引き起こしていたgulp-watchを実行していました。それを止めた後、私はCleanupコマンドを実行することができました。

2

私の場合はこんにちはみんな私はVisual Studioを閉じてからクリーンアップを再試行した後それは良い時間を過ごす

2
Ali Sadri

「ファイル '/Users/Code/UnitTest.cpp'のパーマを変更できません:そのようなファイルまたはディレクトリはありません」などのエラーがありました。 Subversionはもう存在しないファイルについて混乱しています。私は単にファイルのコピーを作成してからクリーンアップするために "echo ABCD >> /Users/Code/UnitTest.cpp"のような何かをしました。出来た。

1
SmallChess

外観を使用していて、そのうちの1つが破損していたときに私にはそれが起こりました。そのフォルダに移動してクリーンアップを実行する必要がありました。その後、クリーンアップは作業コピー全体に対して行われました。

例:外部^/widgets/foo common/foo-widgetを使用して、まずフォルダcommon/foo-widgetのクリーンアップを実行します。

1
erikH

私は打撃を試みたのと同じ問題で立ち往生しています。

1. svnに関連するプロセス、すなわちTSVNCache.exeとTortoiseProcを削除してみてください。2.バージョン管理されていないファイルを元に戻し、svnに削除します。 3.コマンドプロンプトを使用したクリーンアップ "svn cleanup"

そして最後にそれが私のために働いたデスクトップを再起動したとき、システムの再起動のために私のために働いた

1
Ankur Nirmalkar

私のために働いた回避策:

  1. ディレクトリの内容を切り取り、それを別のフォルダにコピーします。
  2. 空のフォルダでコマンドラインからクリーンアップを実行します。
  3. ファイルを元のフォルダにコピーします。

完了しましたが、なぜこれが起こるのか説明できません。ファイルを削除しないと、cleanupコマンドはそれらのファイルを読み書きできないと言ってしまいます。

1
Paolo

私の場合、IDE内からコミットしようとしたときにエラーが発生しました。エクスプローラでTortoiseSVNで同じディレクトリのコミットを実行したところ、操作は成功しました。

1
Dani

私にも同じ問題がありました。

  1. フォルダやファイルを別の場所にコピーして、フォルダにコピーします(最近ファイルを変更しましたが、コミットメントに失敗し、対処した問題が発生しました)。
  2. 新しい作業コピーをチェックする
  3. 変更したファイルをフォルダから作業コピーにコピーして既存のファイルを上書きします。コミット/更新は今動作するはずです
1
guest

私は今日SVNにコミットしようとしたときにこのエラーを解決しました。エラーは本物でした、TortoiseSVNは私がコミットしようとしたファイルにアクセスできませんでした。 Windowsで「管理者として」プログラムを実行している間、このファイルは保存されていました。これは、そのファイルが管理者アクセス権を持ち、私のアカウントからアクセスすることができないことを意味します(TortoiseSVNはインタラクティブユーザーとして実行されています)。私は私のwindowsアカウントの下で指名されたファイルの所有権を取りました、そしてその後、クリーンアップは続行することができました。

1

メインフォルダからsvnを削除して、elsewere.から持っている別の実行可能なコピーからそれを置き換えてくださいそしてそれから更新してください。 svnフォルダは通常隠しフォルダになります。そのため、上記の手順を実行する前に、フォルダを非表示にしてください。

1
digish a d

私は私の仲間の開発者から.svnフォルダを取り、私の.svnフォルダをこれで置き換えました。それは私のために働きました。他に何が起きるのかわからない!

0
Manish Dubey

私はこれを含むsvnに関するいくつかの問題を見ました、それは.svn/tmpディレクトリを削除/作成することによって解決されました。それからsvn cleanupを実行してください

0
Vinnie James

Sigurd Vの答え(あなたが最初にそれを試すべきです)に加えて、いくつかのより大きなコードベースは複数の '.svn'フォルダを持っています、そしてそれはロックされたタスクを持っているルートディレクトリのものであるとは限りません。

その場合は、それぞれ確認する必要があります。 SQLiteとPowershellを既にお持ちの場合は、問題のあるディレクトリを素早く見つけることができます。

どのフォルダがロックされているかを調べるには(path\to\sqlite.exeを置き換えてください):

Get-ChildItem -Path . -Filter '.svn' -Recurse -Hidden | foreach { $toFind = $_.FullName + "\wc.db" ; gci $toFind | foreach { echo $_.FullName ; path\to\sqlite.exe $_.FullName "select * from work_queue" } }

これは.svnディレクトリのリストと、それぞれの下に現在のタスクのリストを表示します。

未実行のタスクがある場合は、実行ごとに(path\to\sqlite.exepath\to\.svn\wc.dbを置き換えて):

path\to\sqlite.exe path\to\.svn\wc.db "delete from work_queue"

0
Robert Gowland

SVN切り替え/クリーンアップを試みたときにファイルがまだ開いていると、これが発生する可能性があります。

新しいファイルを作成したブランチがあり、それを別のアプリケーションで開きました。別のブランチに切り替えてもファイルが削除されず、切り替えが失敗しました。これはsvn cleanupの失敗の原因にもなりましたが、これはTortoise SVN UIの理由として表示されません。

(ルートフォルダの)コンソールウィンドウからsvn cleanupを実行すると、明らかにエラーfile\location\file.ext: The process cannot access the file because it is being used by another processが表示されます。

開いているファイルハンドル/ windowsをすべて閉じてコンソールsvn cleanupを実行すると、クリーンアップは正しく機能します。

長い話短編 - コンソールでsvn cleanupを実行すると、より詳細なエラーが表示されます。

0
Jamie Pollard

このリンクを使用して、 https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-cleanup.html

私はチュートリアルでトップ6のオプションがチェックされていることに気づきました。必死に私はそれらのチェックボックスを使用してそれを試してみました、そして私の驚いたことにそれはうまくいった。それぞれが何をするのかを注意深く読むようにしてください。それぞれの説明を見て、彼らは私のために含めるのが安全であるように見えたので、それらのチェックされたアイテムのうちの1つが私を妨げていたどんな問題でも修正したようでした。

0
eaglei22

私の場合は、バックグラウンドのJava仮想マシンインスタンスが実行されていたため、どのクリーンアップが成功したのでしょう。

0
Dish

私は最初TortoiseSVNでチェックインしようとしているこの問題を抱えていました。当初、TortoiseSVNのクリーンアップとコンソールのsvnのクリーンアップの両方とも、元のポスターと同様のメッセージで失敗しました。

しかし、私の解決策は、(偶然見つけた)数分待つことでした。私はチェックイン時にTSVNCacheがこれらのファイルのいくつかを保持していたと思います。

0
Jahmic

カメSVNを使用します。クリーンアップに失敗した場合は、クリーンアップオプションを確認してください

Break Locksのオプションがチェックされていることを確認してください。

クリーンアップ手順

  • 探索フォルダー内の左マウスボタン
  • 「Tortoise SVN」->「Clean up ...」メニューを選択します
  • Break Locks」にチェックマークを付けて「OK」を押します

それはすでに答えましたが、時々写真が役立ちます

enter image description here

0
s.c

以下の手順に従ってください。

1)svn。で正常にクリーンアップできないディレクトリ(ルートフォルダまたは子フォルダ)に移動します。

2)ディレクトリ内の.svnフォルダを選択し、そのフォルダを切り取り、それを別のドライブまたは別の場所(svnディレクトリ外)に貼り付けます。

3)ディレクトリに戻ります - 右クリックしてTortoiseSVN -->Repo-browserを選択します

4)フォルダーをCheckoutにします(フレッシュチェックアウトは実行されません)。

5)すべてのあなたのアイテムは再びバージョン管理されます、そしてそれはsvnの内部問題を修復するでしょう、そして問題は解決されるべきです。

0
Kunal Khatri