TortiseSVNなんだけど、自分が原因で「already locked」が出てしまった時の対処法。自分がロックを取ってて、ロックが取れずコミットが出来ない事態に遭遇した・・・

投稿日:2017-10-27

SVNを使っていると、たまにありますね。
ロックが既に誰かに取得されていて、コミットしようとした時に、唖然とするやつ。

ただ、今回は状況が違いました。

いつもなら、「ロック取ってるやつ誰だよ~」って感じなのですが、今回は、なんと自分

はい、自分がロック取ってる人でした。

なのに、自分がロックを取得できない

・・・?

どういうことさ???

ロックはどこでも取得可能

そうなんです。
どこでもロックは取得可能です。

よくよく思い返してみると、以前、会社のPCをSSDにこっそり変更した際に、ロックを取得したままのフォルダが残ってた可能性が・・・

で、そのまま気づかずSSDに交換して、チェックアウトし直したので、気づかずに作業をしてしまったんでしょうね。

ロックの強制解除を試してみる

ロックの強制解除を試してみました。

クリーンアップからやれるやつですね。

英語なので分かりにくいですが、赤丸の部分です。

でも、駄目でした。
ロックは解除されぬまま・・・

ロックを奪ってみる

ということで、最終手段。

ロックを奪います。
ロック取得する際に、「ロックを奪う」にチェックをつけてロックの取得を行います。

これって、本来なら、ロック持ってる人に一旦コミットしてもらうなり、ロックを解除してもらうなりする必要があるんですが、今回は自分なので問答無用w

無事、ロックが取得できたので、そのままファイルをコミットして完了。

まとめ:needs lockは必要

これはもう、プロジェクトごとの方針に寄っちゃうんですが、編集時にロック取得を必須化させるプロパティがあるので、それを有効にしておくと誰も不幸になりません。

ロック取得せずに編集出来てしまうと、コミット時に誰かがロック持ってると、一旦最新を取得し直してから、自分の差分を追加し直す必要があるので、二度手間三度手間・・・
さらに、マージする時のミスとかモレの可能性を考慮すると、最初からロックを取得しておいたほうが、幸せです。







-開発メモ
-

関連記事

デグレをぶちかましたので、開発作業を1週間以上止められた話。

自分が改修を担当した画面でデグレが発覚してしまい、開発作業を1週間以上止められました。 止められたのは自分だけですが、マジです。 そんだけ、開発現場において、デグレってのは駄目な話です。 一回、こうい …

[Oracle]破棄されたオブジェクトにアクセスできません。 オブジェクト名 ‘oracleconnection’ です。

破棄されたオブジェクトにアクセスできません。 オブジェクト名 ‘oracleconnection’ です。 破棄されたオブジェクトかどうかの判断(MSDK) MSDNでも破棄さ …

ダイナミックディスクのクローン作成に失敗したから、結局、OSのクリーンインストールをせざるを得なかった。

SSDへの移行失敗しました。 無料で使えるEaseUS Todo BackUp のフリー版を使ったけど、クローンが作成できなかった・・・ コピー後、起動しようとしても、お馴染みのOSディスクが無いぜ? …

なぜ、エラーが発生する? VirtualBoxでのUbuntu Linuxの起動に再チャレンジ。

前回、会社で遊べる勉強できる環境としてUbuntu Linuxを導入しようと画策していました。 前回は、あえなく断念・・・ 日本の中心付近で仕様変更と闘うSE日記VMWareがだめだったから、Virt …

[C#]systemcolorを使う

ボタンとかを作成した時に、BackColorとかにデフォルトで設定される色を変更したいけど、何かのアクション以外は、デフォルト職を使いたい。 って時に多分使える。 SystemColorsクラス(Mi …


カテゴリー