2009-08-23 10 views
1

私はコードを同期するためにtortoiseSVNを使用しています。 しかし最近、私はそれほど便利ではないものがあることを発見しました。 ファイルを変更すると、a.jsp、 と言って、このファイルa.jsp、 を変更する可能性があります。この場合、競合が発生する可能性があり、使用するコードのうち最初に をチェックする必要があります。もう1つは最新のバージョンに更新してから、 の競合を1つずつ解決する必要があります。これは実際には誤りです。SVNを使ってコードを同期させるには?

は、だから、私は編集していますa.jspをロックし、同時にファイルを変更するために、他の同僚を防ぐことができ亀SVNでいくつかの機能を、必要とします。 私はa.jspファイルをロックしたときに、私の同僚はまだちょうどあなたの同僚」のような、任意のプロモーションや警告なしに、同時に、このファイルを変更することができ、私はTortoiseSVNの中に「ロック」機能を試してみましたが、それは動作しません、 このファイルを変更しています... "

解決方法はありますか? ありがとうございます!

答えて

5

は、最も柔軟なワークフローは、あなたがロックする必要はありませんものです。しかし、が本当にファイルをロックしたい場合は、がこの機能を提供します。

ロックを要求するファイルにプロパティsvn:needs-lockを追加し、値を*に設定します(実際にはプロパティの値とは関係ありません)。その後、チェックアウトまたは更新するときに、Subversionは作業コピーでこれらのファイルを読み取り専用としてマークして、最初にロックすることを思い出させます。

あなたはSubversionでファイルをロックします(このオプションはすでに見つかっていますが、ロックされていないファイルに対しては何もしません)ので、ファイルをディスクに読み書きできるようになります。その後、変更を加えます。ファイルをチェックインすると、Subversionは自動的にロックを解除します(ただし、必要に応じて保持するオプションがあります)。その後、ファイルは作業コピーで再び読み取り専用になります。

Subversionでのロックは「勧告」のみであることに注意してください。つまり、他の誰かが既にロックを取得している場合でも、他の誰かがロックの取得を強制することができます。この場合、ワークフローはまだサポートされています。なぜなら、誰かがロックをかけずに変更をマージする必要があるかもしれないからです。

最後に、画像ファイルやMS Wordファイルなど、Subversionの非テキストファイルを処理するには、ファイルをロックするのが最適です。 Subversionはこれらのタイプのファイルを自動的にマージすることはできません。したがって、アドバイザリロックは、2人のユーザーが同じファイルを同時に編集しようとしないようにします。

+0

ええ、ありがとう、私はファイルをロックするプロパティを追加しようとします – MemoryLeak

0

Tortoiseには、変更を加えたコードを更新してみるとよいかもしれない「マージ」オプションがあります。

6

はい、よりよい解決策があり、それは3つの部分から構成されています

  1. ロック決して、あなたが同じファイルで作業、または少なくとも正確にしないでください
  2. する必要はありませんファイルの同じ部分、他の誰かと同じ時刻に
  3. あなたがそうした場合、マージしてください。

マージは、SVNのようなソース管理システムを使用する典型的な部分です。あなたはそれを恐れるべきではありません。あなたはそれを喜んで受け入れるべきです。

通常、余分な領域で作業している場合を除き、マージは自動的に行うことができます。この場合は、手動で変更する必要があります(ただし、TortiseSVNのdiffツールがこれに役立ちます)。

私は、これは多くのことを起こっている場合、あなたはあなたのプロジェクト内で作業を割り当てる方法を再評価することを示唆しています。

+0

ええ、チェックイン、それがマージUIを表示し、チェックインの前に更新するsync.don'tに適してます。 おかげで再び。 – MemoryLeak

0

「チェックインダンス」と呼ばれるSVNのユーザー(特にアジャイルSVNユーザー)の間での練習があります。この簡単なプラクティスは、コードをSVNリポジトリにチェックインする際の矛盾の量を大幅に削減することができます。

レポの変更を確認する準備ができたら: 1.最初に更新を行い、他の人に変更を加えます。 2.ビルドスクリプトを実行します(またはビルドスクリプトがない場合はコンパイルします)。 3.すべてがうまくいったら、変更をコミットします。

ロックは、人々は、彼らがそのファイルを変更する必要がある場合に動作するように誰もが完全にできないままにファイルを「アンロック」するために忘れがちなことではありません、少なくともそのうち、それは問題の自身のセットの原因となります。 SVNで

マージ競合では、TortoiseSVNを使用して慣れるようにロックを使用して、あなたのために非問題になるはず、行うのは非常に簡単です。このことができます

希望、他の人が述べたように リー

関連する問題