「前の操作が終了していない」ためにSubversionがスタックしましたか?


229

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

クリーンアップがblablablaの処理に失敗しましたファイルblablablaを読み書き設定できません:指定されたファイルが見つかりません。

更新すると、次のようになります。

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

これを解くにはどうすればよいですか?


(すべてのSVN情報を削除して再チェックアウトする以外)
coderama

3
その迷惑なエラーは、私がsvnを嫌う理由です。ルートフォルダーまたは親フォルダーからのクリーンアップが機能しないため、これに直面するたびに再チェックアウトする必要があります。しかし、最大の問題は、その時点ではオーバーレイアイコンが表示されないため、チェックアウトする前にバックアップに変更されたファイルがわからないことです
phuclv

:@シグルド-Vでのポストは、私や他の多くを助けた質問に対する本当の答えですstackoverflow.com/a/22717607/5613292
メフディジャワ

回答:


102

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

それでも失敗する場合は、子ディレクトリをどこかで削除したためです。子ディレクトリからも1レベル上位を削除して(ルートではないと想定)、更新とクリーンアップを再試行してください。

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


4
子供のdirから片付けるために!わたしにはできる!
Franva

1
これを読んでいると困ります:)私は(今のところ)Gitでこのような混乱に遭遇したことはありません。Svnに許可された場合、私は最終的に、可能なディレクトリでクリーニング/リバート/クリーニングなどを行いました。
aliopi 2017

2
:@シグルド-Vでのポストは、私や他の多くを助けた質問に対する本当の答えですstackoverflow.com/a/22717607/5613292
メフディジャワ

私はWindows FileExplorer(Turtoiseを使用)からCleanupを実行しましたが、問題のあるファイルが何であるかを教えてくれる、より複雑なエラーが表示されました。不足しているファイルを置き換えるようにファイル名を変更し、クリーンアップを実行します。このエラーは発生せず、すべて修正されました!!
ジョルマン2018

331

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

私はこれの助けを借りて、「前の操作が終了していません」というエラーに関連する同様の問題を解決しました(リンク

コマンド/操作の処理中にsvnがスタックすることがあるようです。これらの操作はすべて、.svnフォルダーのデータベースファイルwc.dbに保存されます。

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

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

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

実行することにより

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

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


5
上記の解決策を試す前に、常にクリーンアップを実行する必要があります。これは、新しい作業コピーをチェックアウトせずに、スタックしたSVNリポジトリを稼働させる場合に機能します。
Sigurd V 2014年5

7
sqlite.exeをダウンロードして削除を実行する方が、実際にチェックアウトしてマージするよりも高速でした-素晴らしい答え
Jeffrey Knight

12
私はこの後も「ロック」されていますが、「svn cleanup」でそれを超えています
Jeffrey Knight

1
私はこれをDebianで実行し、apt-get install sqlite3を使用してインストールした後、.exeなしで上記のコマンドを実行できます
Richard Merchant

3
「ロックされた」メッセージも表示されましたが、「クリーンアップ」コマンドを実行して、「ロックを解除する」というボックスにチェックを入れたところ、動作しました
McCoy

114

コンソールsvn cleanupを実行すると、同じ問題が解決しました。


20
また、コンソールコマンドsvn cleanupはTortoise Explorerプラグインを使用するよりも詳細な情報を提供するため、このような状況で非常に役立ちます。
Brandon S

7
consoleコマンドを実行すると、実際に問題を解決するのに十分な情報が得られるでしょう。これははるかに良い答えです。
DDS

1
さて私は、ほとんどのトップフォルダを選択して使用するsvn cleanup、ありがとう
deadfish

私は親ディレクトリをたどってクリーンアップを実行することに成功しましたが、少し時間がかかり、「魔法」です。これが詳細なエラー+1を返すことを知らなかった。
Phil Cooper、

を実行するときsvn cleanupは、コンソールが昇格されていることを確認してください。最初はこれを行わなかったため、red-write: Access is deniedエラーが発生しました。
Tony

26

同様の問題が発生しました。プロセスエクスプローラーを実行すると、SVNが削除しようとしたフォルダーへのファイルハンドルが別のプログラム(Notepad ++)にあることが示されました。Notepad ++を閉じると、「クリーンアップ」が正常に実行されました。


それは質問で言及された問題を引き起こす可能性があります。しかし、私は恐れています、それがすでに起こった場合、それを清算することはできません。
Gangnus 14

19

すでにSVNにあるjarを追加した後にこの問題に直面し、同じ名前の新しいバージョンを追加しました。

Eclipseでこれを試しました

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

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


1
私のために働いた。ただ、3番目の手順は必須ではありません(Eclipseを再起動します)。
jpmottin 2017年

これもうまくいきました。色々試してみましたがうまくいきませんでした。ビジュアルスタジオを閉じて、クリーンアップを実行しました。どうもありがとう
AhammadaliPK 2018

18

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

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

これでクリーンアップ操作が正常に完了し、続行できます。sqlite3や他の複雑なソリューションをダウンロードする必要はありません。


2
ロックの解除は、私が思っていたようにはいきません。システムで使用するローカルロックのみを解除します。他の誰かが設定したロックではありません。
ブライアンカールトン

1
sqlite3は時々私の問題を解決しましたが、その方法は覚えるのが難しすぎてクリーンアップが頻繁に失敗しました。この方法は、私を救った...
SC

9

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


1
そうだね。ファイルが使用されていないか、Windowsの管理者などの別のユーザーとしてチェックアウトされていないことを確認してください。
froggythefrog

6

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

[ ロックを解除する]オプションがオンになっていることを確認します。

クリーンアップ手順

  • エクスプローラフォルダの左マウスボタン
  • [Tortoise SVN]-> [クリーンアップ...]メニューを選択します
  • Block Locks」にチェックを入れ、「ok」を押します

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

ここに画像の説明を入力してください


4

同じ問題が発生しました。私の場合、私が言っているアプリケーションでsvn tortoiseを使用していました。ルートモードでウィンドウのcmdシェルを使用して、svnクリーンアップを適用し、次にsvn update ...を適用しました。その後、アプリケーションモードに戻ることができ、完全に機能します。


2

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


2

同じ問題があり、c:\レベルに非表示の.svnファイルがあることがわかりました。この隠しフォルダー(.svn)を削除すると、すべて正常に動作しました。意図せずにルートドライブに作業ディレクトリを作成した必要があります。


2

私の場合、問題の原因となったガルプウォッチを実行していました。停止後、Cleanupコマンドを実行できます。


これにより、不要なJVMを強制終了して進行することができました。
2017


2

私も一撃しようとした同じ問題で立ち往生しています:

1. svnに関連するプロセス、つまりTSVNCache.exeとTortoiseProcを強制終了します。2.バージョン管理されていないファイルを元に戻し、同じファイルを削除します。3.コマンドプロンプト「svn cleanup」を使用したクリーンアップ

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


1

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


1

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

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

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


1

私は同じ問題を抱えていました、私にとってうまくいったこと:

  1. フォルダとファイルを別の場所、たとえばフォルダにコピーします(ファイルを最近変更したため、コミットが失敗し、対処された問題が発生しました)
  2. 新しい作業コピーをチェックアウトする
  3. 変更したファイルをフォルダーから作業コピーにコピーし、既存のファイルを上書きします。コミット/更新が機能するはずです

1

「ファイル '/Users/Code/UnitTest.cpp'の権限を変更できません:そのようなファイルまたはディレクトリはありません」などのエラーが発生しました。subversionは、もはや存在しないファイルについて混乱しています。「echo ABCD >> /Users/Code/UnitTest.cpp」のようにしてファイルのコピーを作成し、クリーンアップしました。出来た。


1

私の場合、IDE内からコミットしようとするとエラーが表示されました。エクスプローラーでTortoiseSVNを使用して同じディレクトリのコミットを実行したところ、操作は成功しました。


1

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

例:externalを使用して^/widgets/foo common/foo-widget、最初にfolderでクリーンアップを実行しますcommon/foo-widget


1

SVNにコミットしようとしたときに発生したこのエラーは、今日解決しました。エラーは本物でした、TortoiseSVNは私がコミットしようとしたファイルにアクセスできませんでした。このファイルは、Windowsで「管理者として」プログラムを実行中に保存されていました。つまり、ファイルには管理者アクセス権がありますが、私のアカウント(対話型ユーザーとして実行されているTortoiseSVN)からのアクセス権はありません。私は自分のWindowsアカウントで指定されたファイルの所有権を取得し、その後、クリーンアップを続行できました。


0

TortoiseSVNでチェックインしようとすると、最初にこの問題が発生しました。最初は、TortoiseSVNクリーンアップとコンソールsvnクリーンアップの両方が失敗し、元の投稿者と同様のメッセージが表示されました。

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


0

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

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

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

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

4)Checkoutフォルダー(新しいチェックアウトは実行されません)。

5)すべてのアイテムのバージョンが再度変更され、svnの内部の問題が修復され、問題は解決されます。


完全なチェックアウトのみを実行します。何か助け?
candidJ

0

私の場合、バックグラウンドのJava仮想マシンインスタンスが実行されていて、どのクリーンアップが成功したかがわかりません。


0

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


0

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

チュートリアルでは上位6つのオプションがオンになっていることに気付きました。必死で私はそれらのチェックボックスを使ってそれを試しました、そして驚いたことにそれはうまくいきました。それぞれが何をするかを注意深く読んでください。それぞれの説明を見ると、私にとっては安全に含めることができたので、チェックされた項目の1つで問題が解決されたようです。


0

これは、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

開いているファイルハンドル/ウィンドウを閉じてコンソールを実行svn cleanupすると、クリーンアップが正しく機能するようになります。

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


0

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.exeおよびを置き換えるpath\to\.svn\wc.db):

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


0

svnこれを含むいくつかの問題を確認しました.svn/tmp。ディレクトリを削除または作成することで解決しました。次に実行しますsvn cleanup


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.