22

いくつかの更新のためにトランクをブランチにマージしようとしているこの非常に厄介な問題があります。私はこれを毎日行っていますが、ほぼ毎日、次のエラーが発生します。

Error - 'D:\Code\Website' is already locked via 'D:\Code\Website'.

非常にランダムにのみこのエラーが発生せず、トランクをブランチに正常にマージできます。しかし、私は一日中トランクから最新のものを取得しようとしてきましたが、うまくいきませんでした。私はこの問題への答えを高くも低くも見てきました.. SO、Google、インターネット上のランダムなフォーラム...など。

これは私がすでに試したことです:

  • ディレクトリ内のすべてのフォルダに対して「クリーンアップ」を実行します。
  • .svn ディレクトリの「ロック」ファイルを確認しました - 存在しません。
  • wc.db ファイルを開き、WC_LOCK テーブルをチェックしました - そこには何もありません。
  • ウイルス対策を無効にしました。
  • IIS を無効にしました。
  • ブランチの新しいコピーをチェックアウトしました。
  • 更新された TortoiseSVN
  • TortoiseSVN.net (1.7.10.23359、SVN 1.7.7) からの最新の MSI を使用して、TortoiseSVN のアンインストールと再インストールを完了しました。

ブランチを更新してコミットすることができます..それに関する問題は一度もありません。トランクをマージしているだけで、問題が発生しています。チームの他の誰もこの問題を抱えていないようです (このブランチまたは他のブランチで)。彼らは自由にブランチをチェックアウトし、トランクをマージして問題なくコミットできます。

TortoiseSVN を使用しています。みんな/ギャルが持っているどんな助けも素晴らしいでしょう!

編集: また、テスト マージは機能しますが、実際のマージは機能しません。

アップデート

TSVNCache.exe は常に wc.db ファイルのロックを保持していることが判明しました。理由がわかりません。プロセスを強制終了しても; TSVN Merge GUI を使用すると、キャッシュが再度起動されてロックされます。コマンド ライン経由でマージに成功しました。コマンド ラインに頼らなくても済むように、キャッシュ ロックの問題を修正する方法はありますか?

4

4 に答える 4

8

アイコン オーバーレイ ステータス キャッシュをオフにしてみてください (TSVNcache.exe プロセスが担当するもの)。

  1. エクスプローラ ウィンドウを開く
  2. 任意の場所を右クリックして、TortoiseSVN -> 設定
  3. 「アイコンオーバーレイ」セクションに移動します
  4. [ステータス キャッシュ] の下の [なし] ラジオ ボタンを選択します。
  5. [適用] をクリックします

おそらく、ステータス キャッシュが無効になっており、TSVNcache.exe が実行されていない場合、ファイルをロックできません。少なくとも、これが問題であるかどうかを除外できます (確かにそのように聞こえます)。これは、エクスプローラーのフォルダー/ファイル アイコンを緑のチェックマーク、赤の変更マークなどで更新するプロセスです。私は何年もの間、パフォーマンス上の理由からこれを無効にしてきました。変更されたファイルを表示するか、コミット ダイアログを開いて、変更されたファイルを確認するだけです。

次に疑わしいのは、過去の経験からインデックス サービス (Windows Search) です。

于 2012-11-08T02:23:37.350 に答える
2

アイコン オーバーレイをあきらめる代わりに私にとって有効なもう 1 つのオプションは、Windows エクスプローラーのディレクトリを非 svn フォルダーに変更することです。この方法では、TortoiseSVN はそれ自体と競合しません。とても面倒ですが、迅速な解決策が必要な場合は、これで終わりです。

于 2013-07-02T12:59:27.730 に答える
1

私はしばらくの間同じ問題を抱えています。特に私のリポジトリは大きくなっているからです。

TSVNCache が作業コピーをロックするというポインターは、私に考えさせました。なぜそれをするのでしょうか?結論: 作業コピーのステータス (アイコン オーバーレイを含む) の更新で忙しい場合のみ。

この問題を解決する 1 つの方法は、Joshua McKinnon が言うとおり、アイコン オーバーレイを無効にすることです。それがあなたが望む解決策でない場合 (アイコンを保持したいため)、別のアプローチを取ることもできます: TSVNCache がその仕事を終えるまで待ちます。マージ ウィンドウを開くと、TSVNCache がビジーであることがわかります (プロセス エクスプローラーで)。その忙しさが終わったら、安全にマージを行うことができます。それ以来、ロックの問題はもうありません。

于 2013-01-30T08:24:51.853 に答える