2009-07-26 9 views
8

私はSVNから排他的なチェックアウトを行う方法を探しています。SVNで排他的なチェックアウトを行うにはどうしたらいいですか?

  1. ファイルをチェックアウトしているときに自動的にロックする方法はありますか?

  2. 1人のユーザーが排他的なチェックアウトを行い、別のユーザーが同じファイルに対してチェックアウトを行った場合、ファイルがロックされているという通知やインスタントメッセージを2番目のユーザーに生成するにはどうすればよいですか?

答えて

3

私があなたのフォローアップ記事を理解していれば、あなたが本当に望んでいると思うものは、人々がにロックについて約を知っていることを確認することです。私はユーザーAとBがをすでに持っている場合を想像しています。はjpegをチェックアウトしました。ユーザーAはロックして、ユーザーBが知っていることを確認して、jpegの編集を開始せずに時間と労力を浪費しないようにします。

それが正しいなら、私は二つのことをお勧めします。まず第一に、通信(非常に技術的ではないが、非常に強力を一貫して使用する場合)。第二に、svnpost-lockリポジトリフックを見てみるとよいでしょう。これを使用して、誰かがファイルにロックをかけたときに電子メールを送信させることができます。 the subversion bookから

1つ以上のパスがロックされた後post-lockフックが実行されます。通常、ロックイベントの電子メール通知を送信するために使用されます。

+1

あなたはそのロジックおよびプロセスを(例えば、画像ファイルは常に編集前にロックする必要があります)続く場合は、問題に得ることはありません!ファイルをロックしようとすると、ロック(およびロックの理由)が既に存在することが警告されます。 svn:needs-lockプロパティを使用すると、そのファイルまたはファイルタイプにロックポリシーが適用されます – Alex

+0

例では、ユーザBがロックを設定せずにjpegを編集しようとすると、プロセスに従っていません – Alex

6

あなたは戻って(あなたが他のユーザからロックを取るために--forceを使用することもできます)の変化をチェックし、他のユーザーを防ぐためにsvn lockを使用することができます。これにより、コマンドラインにそのファイルをロックしている人を知らせるメッセージが生成されます。

共通です。あなたはバイナリのためにこれを行うことはできませんし、別のチェックインがある場合はチェックインが拒否されます - 人々は他の変更(これはテキストのようにマージ可能なフォーマットのために発生するとマージされた変更を(非排他的に)コピーをチェックアウトして書き戻すことにより、SVNと連携しますその間に発生した)。

これは定期的に使用されるとは思っていませんでした。通常、私はsvnのマージ能力に頼っています。b)他のチームメンバーとコミュニケーションをとり、他の人のつま先を踏まないようにします。

+1

私はコミュニケーションがより良い最初の選択肢であることを同意するが、一つだけ注意:あなたがレポの管理者である場合、あなたは '事前unlock'リポジトリのフックを使用してロックを強くすることができます。私は本当に通常の使用のためにそれを推奨していないが、私はそれが有用であるか必要であるかもしれない場合を想像することができます。 – Telemachus

20

あなたは読み取り専用ファイルを作成し、それを編集し、ファイルのロックを配置する必要がありますプロパティまたは自動小道具svn:needs-lockを追加することができます。

あなたがロックされたファイルごとに異なるアイコンが表示されますTortoiseSVNのを使用している場合、2番目のユーザーが参照してファイルを編集するのではなく、知っているため、これは簡単なはずです。

Referenced in TortoiseSVN documentation

+6

+1これは受け入れられる答え –

+0

それは間違いなくそれです。 – bahrep

関連する問題