SVNを使っていると、たまにありますね。
ロックが既に誰かに取得されていて、コミットしようとした時に、唖然とするやつ。
ただ、今回は状況が違いました。
いつもなら、「ロック取ってるやつ誰だよ~」って感じなのですが、今回は、なんと自分。
はい、自分がロック取ってる人でした。
なのに、自分がロックを取得できない。
・・・?
どういうことさ???
ロックはどこでも取得可能
そうなんです。
どこでもロックは取得可能です。
よくよく思い返してみると、以前、会社のPCをSSDにこっそり変更した際に、ロックを取得したままのフォルダが残ってた可能性が・・・
で、そのまま気づかずSSDに交換して、チェックアウトし直したので、気づかずに作業をしてしまったんでしょうね。
ロックの強制解除を試してみる
ロックの強制解除を試してみました。
クリーンアップからやれるやつですね。
英語なので分かりにくいですが、赤丸の部分です。
でも、駄目でした。
ロックは解除されぬまま・・・
ロックを奪ってみる
ということで、最終手段。
ロックを奪います。
ロック取得する際に、「ロックを奪う」にチェックをつけてロックの取得を行います。
これって、本来なら、ロック持ってる人に一旦コミットしてもらうなり、ロックを解除してもらうなりする必要があるんですが、今回は自分なので問答無用w
無事、ロックが取得できたので、そのままファイルをコミットして完了。
まとめ:needs lockは必要
これはもう、プロジェクトごとの方針に寄っちゃうんですが、編集時にロック取得を必須化させるプロパティがあるので、それを有効にしておくと誰も不幸になりません。
ロック取得せずに編集出来てしまうと、コミット時に誰かがロック持ってると、一旦最新を取得し直してから、自分の差分を追加し直す必要があるので、二度手間三度手間・・・
さらに、マージする時のミスとかモレの可能性を考慮すると、最初からロックを取得しておいたほうが、幸せです。