web-dev-qa-db-ja.com

フォルダがロックされており、ロックを解除できません

プロジェクトのコードを更新またはコミットしようとすると、フォルダーがロックされていることがわかります。 「ロックを解除」しようとすると、この作業スペースにはロックを解除するものは何もないと言われます。

どういう意味ですか?プロジェクトを更新、コミット、またはクリーンアップすることさえできないのはなぜですか。

104
Iyad Al aqel

Subversion作業ディレクトリフォルダーを右クリックし、コンテキストメニューからTortoiseSVN-> Clean Upを選択します。これは、作業ディレクトリを再帰的に処理し、不完全なアクションをクリーンアップし、localロックを削除します(これは、誰もがロックについて知ることができるリポジトリ内のファイルのSubversionロックの使用とは異なります)。

それでも解決しない場合は、変更されたがまだコミットされていないファイルの名前を見つけられるかどうかを確認し、それらを保存して、チェックアウトをやり直してください。

158
David W.

ファイルが自分でロックされた場合(同じsvnアカウント)、次の手順を実行できます。

ロックされたファイルまたはフォルダーを右クリックして、TortoiseSVN-> Get lock ...を選択し、「- []ロックを盗む "ダイアログの左下隅にある「OK」をクリックします。正常に完了した場合は、問題ありません。もう一度ファイルを右クリックすると、TortoiseSVN-> Release lock ...が表示されます。クリックしてロックを解除します。

14
cuixiping

Svnコマンドラインを使用してローカルフォルダーのロックを解除するには、svn cleanupを使用します。

前:

# svn commit -m "fixing #1234"

commit

# svn st

before

# svn cleanup

後:

# svn st

after

# svn commit -m "fixing #1234"

after2

12
Sebas

まだこの問題を抱えている人(エラー:作業コピー '{DIR}'がロックされています。)、私はあなたの解決策を持っています:

TortoiseSVNウィンドウの1つがクラッシュすると、TSVNCache.exeが作業コピーへのハンドルをまだいくつか残しており、それが表示されているロックの問題の原因になっていることがわかりました(また、クリーンアップがジョブを実行できなくなります)。

これを解決するには:

いずれか

1a)Process Explorerなどを使用して、TSVNCache.exeが所有するハンドルを削除します

1b)..さらに簡単に、タスクマネージャーを使用してTSVNCache.exeを強制終了する

その後

2)右クリック-> TortoiseSVN->クリーンアップ。 「作業コピーのステータスをクリーンアップする」のみをチェックする必要があります。

そこから、幸せな更新/コミット。 SVN更新を実行し、更新が終了する前にTortoiseProc.exeプロセスをすばやく終了することにより、ロックの動作を再現できます。

10

この問題が発生したのはこれが初めてでした。私も効果なしで、PCを再起動しようとしました。これは私の問題を解決します:

私のためのソリューション:

  1. 右クリック Project Working Directory。
  2. TortoiseSVNに移動します。
  3. 移動先クリーンアップ
  4. すべてのデフォルトオプションをそのままにして、Break Locksをチェックします
  5. OKをクリックします

これは私のために動作します。変更をコミットできました。

5
WilliamK

現在別のユーザーによってロックされているコマンドプロンプトから作業コピーのファイルのロックを解除するには、--forceオプションを使用します。

$ svn unlock --force tree.jpg

3
manav m-n

私はこの問題を抱えていましたが、以下の手順で解決しました。

  1. 子フォルダーではなく親フォルダーに移動する
  2. SVNクリーンアップを選択します
  3. OKをクリックします。

子フォルダーではなく親フォルダーでこの手順を実行してください!

それは私のために働いた!

3
Akhilesh

クライアント側からファイルをロック解除できなかったこの問題がありました。私はもっ​​と簡単なサーバー側に行くことにしました。

SVNサーバーの場合:

ロックを見つける

 svnadmin lslocks /root/of/repo
 (in my case it was var/www/svn/[name of Company])

 You can add a specific path to this by svnadmin lslocks /root/of/repo "path/to/file"

ロックを解除

 svnadmin rmlocks /root/of/repo “path/to/file” 

それでおしまい!

1
Stacker

フォルダーを1レベル上に移動し、別のフォルダーに移動していました。私の間違いは、親フォルダー内から移動することでした。

悪い例:

pwd -> C:\Repo\ParentDir\
svn move ./DirtoCopy ../AnotherDir

SVNは、削除されたフォルダー情報で親ディレクトリを更新する必要があります。
ソースフォルダーと宛先フォルダーの共通ルートから実行するか、フルパスを使用する必要があります。

良い例え:

svn move C:\Repo\ParentDir\DirtoCopy C:\Repo\NewLocation
1
rasky74

フォルダーの名前を変更してフォルダーのパスを小さくすることで、コンピューターでこの問題を解決できました。

0
rsivakumar

ブロックされたドキュメントのロックを解除するには:1.右クリック->ロック2. [ロックのスチール]チェックボックスをオンにします2.ロックを解除します

0
user7257040

デビッドMの答えに加えて、クリーンアップ中に-> 'break locks'オプションをチェックします。これにより、ロックが確実に解除されます。次に、svn updateを実行します。これは私のために働いた。

0
Vinnu

私はこの問題について多くのことを研究していますが、これを試すまで解決策はありません:

リポジトリフォルダーはWindows XP仮想マシンと共有されているため、VMからクリーンアップを実行してから、ホストからSVN UPDATEを実行します。

それは私のために働いた。

コスタリカからのご挨拶。

0
Luisca94

解決策:

  1. Project Working Directoryを右クリックします。
  2. TortoiseSVNをナビゲートします。
  3. クリーンアップに移動します。
  4. [作業コピーのステータスをクリーンアップする]を選択します(チェックマークを付けます)
  5. OKをクリック
  6. 手順1と2を繰り返し、ナビゲートしてロックを解除します。
  7. [OK]をクリックします。プロジェクトロックが開きます。
0
Vinayak