4

これを行う方法がわかりません。実際のプロジェクトで SVN を使い始めたところです。すべてが正しく機能しています。でも、使っているのは私だけ。ここで、2 番目の人にそのプロセスを紹介したいと思います。

Windows マシンに tortoisesvn をダウンロードし、メイン トランクのチェックアウトを行いました。ファイルを編集して新しいファイルをコミットできます。すべてが機能します。

今、私が何かをしている間に、2番目の男にそれをしてもらいたい. 通常、彼は別のファイルで作業している可能性があり、コミットされたファイルをテストサーバーにエクスポートする時間について合意します (とにかく私の考えです)。しかし、同じファイルで作業している場合はどうなるでしょうか? たとえば、構成ファイル。たぶん、私たちは両方ともそれを変更する必要があります。他の誰かがそれを変更している間、どうすれば私 (または彼) は他の人をそれから遠ざけることができますか? 私たちの 1 人が新しい更新をコミットすると、私たちの 1 人が入れたばかりの内容が消去されます。ここで何をすべきかわかりません。

4

5 に答える 5

9

SVN の目的は、ファイルを取得して「これは私のものです。触らないでください」と言うのではありません。目標は、両方が終了したときに変更をマージすることです。2 人の人物が実際に互換性のない変更を行っているケースは少なく、その場合、開発者は、ファイル ロックを最初に獲得する競争ではなく、それらをマージするための最善の方法について協力する必要があります。

コミットの前に常に更新して、変更を自分の変更にマージします。

于 2010-03-09T22:09:22.400 に答える
6

いいえ、何も消去されません。

2 人のユーザーがファイルを変更してコミットしようとすると、2 番目にコミットしたユーザーには、ファイルが最後の更新以降に変更されているというエラー メッセージが表示されます。

次に、その 2 番目の人が更新を行います。SVN がそれを行うことができれば、それらをマージし、両方の人の変更を保持します。できない場合 (通常、ファイル内の同じ場所で何かを変更した場合のみ)、それが通知され、競合を処理する必要があります。

于 2010-03-09T22:11:16.297 に答える
2

Subversion (実際にはまともな SCM) では、更新を実行した後にのみコミットできるため、この問題は発生しません。Subversion が変更をマージできない場合、競合が発生するため、手動で解決する必要があります。

于 2010-03-09T22:11:19.527 に答える
2

SVN には、まれに使用する必要がある場合に備えてロックがあります。詳細については、SVN book の Locking セクションを参照してください。

于 2010-03-09T22:13:45.900 に答える