Subversion(TortoiseSVN)でファイルのロックをおすすめ(設定)する方法(手順)
Subversionで、画像ファイルなどあとからマージのできないファイルを
バージョン管理する必要が出てくることがあるでしょう。
必要に応じて、ファイル単位で
あらかじめロックをしてからでないと
編集できないようにファイルに属性をつけておくことができます。
(ご注意)
このページをご利用になった結果の影響については、
一切責任を負いませんので、あらかじめご了承願います。
- TortoiseSVNを使うときに、あとからマージのできないファイルを編集するときは、
その間は他の人が編集できないようにするために、ファイルをロックします。
目的のファイルを選んで、
コンテキストメニュー(右クリックメニュー)を使って、
[TortoiseSVN] → [ロックを取得]を選択します。
- ここで理由を入力するのは、他の人にわかるようにするためです。
理由を入力して[OK]を押すと、ロックが完了します。
- ここまではいいのですが、知らずに他の人がコミットしようとしたときに、
エラーが出ます。当たり前ですよね。ロックされてしまってるんですから‥‥。
- こんなときのために、あらかじめ
コンテキストメニュー(右クリックメニュー)を使って、
[TortoiseSVN] → [変更をチェック]を選択して‥‥。
- 表示する画面で、[リポジトリをチェック]
のボタンを押すと、誰かがファイルをロックしていれば
理由もあわせてそれを表示してくれます。
- でも、ついついこれを忘れてしまって編集してしまって、
その結果、気がついたら誰かがロックしていたり‥‥。
編集済みで、マージもできないのに更新せざるを得なかったり‥‥。
あとから困りますよね。
- こんなことにならないように、
マージできないファイルは、必ずあらかじめロックをしてからでないと
編集できないようにファイルに属性をつけておきましょう。
コンテキストメニュー(右クリックメニュー)を使って、
[TortoiseSVN] → [属性]を選択してください。
- 属性画面を表示しますので、[新規]ボタンを押してください。
- 「svn:needs-lock」を選択して、属性名のところは空白のままで
[OK]ボタンを押してください。
- 「svn:needs-lock」が追加されていることを確認して、
[OK]ボタンを押してください。
- 属性を追加した結果を、忘れずにコミットしてください。
- Explorer上でのアイコンの色が灰色になります。
ファイルの属性が、読み取り専用になっていることを確認してください。
- ファイルが読み取り専用になっているので、
このままでは編集できないことに気がつきやすくなるでしょう。
これで、ロックを取得することを忘れにくくなると思います。
- もちろん、他の人が先にロックしてしまっているのであれば、
後の人がロックしようとしたときに、そのことがわかります。
- 「ロックを開放」と「ロックを解除する」との違い
作業コピーでロックしたファイルを右ボタンでクリックすると、
「ロックを開放」と「ロックを解除する」と両方が出てきます。
この「開放」と「解除」は何が違うのでしょう?
どちらを選択しても、ロック解除の画面が出てきます。「ロックを解除する」は
「svn unlock --force」 (訳注: 他の誰かのロックを強制的に解除する)ことになると思いますが、
自分で自分の作業コピーをロックしたものに強制的な解除は必要ないのに、
なぜこのメニューが表示されるのでしょうね?
作者の説明によると、まず「ロックを解除する」は、コンテキストメニュー(右クリック)を
表示するときにシフトボタンを押したときにだけ表示します(訳注: いつも表示されているような気がします)。
これはSubversionコマンドでいうところの「unlock --force」をやります。
あなたがあなたの作業コピーでロックを取得したにかかわらず、
それでもあなたの知らないところで、もしあなたがアップデートしていなくても、
他の誰かがあなたのロックを解除してくる(訳注: 横取りされる)可能性があります。
そのときに、あなたは他の人のロックを解除しなければならなくなります
(訳注: もしここであなたが諦めてしまうのであれば[更新]すればよいです)。
これが、あなたが既にロックしたファイルに対しても「ロックを解除する」が表示される理由です。
この情報の出典: http://svn.haxx.se/tsvnusers/archive-2008-10/0598.shtml
shacho@critical.ne.jp
Last modified: Thu Jan 29 22:00:00 JST 2009