これは本当に明白な質問であれば、事前に私の謝罪 - 私はSVNを初めて使いました。私は答えを探すために全力を尽くしましたが、これを具体的に扱うものは何も見つかりません。なぜSVNはこれが競合だと思いますか?
プログラムの先頭にあるコメントブロックのために分岐をマージすると、頻繁に競合が発生します。
各プログラムの先頭にコメントブロックを使用して、プログラムの内容を説明し、変更を追跡します。プログラムを変更するたびに、そこに新しい変化があることに気付きます。ライブプログラムのコメントブロックは次のように終わると言う:
* <developer 1> <date> <comment> *
* ******** END COMMENTS ******** *
二つの新しい開発者が独自のブランチを開始し、現像剤2がライブ自分のコードを置くと、現像剤3が戻って彼のブランチにそれをマージし、開発者1の下に自分のコメントを追加。私はこれが明白な紛争であることが分かります。なぜなら、彼らは両方とも異なる新しい行を追加したからです。ライブ
:
* <developer 1> <date> <comment> *
* <developer 2> <date> <comment> *
* ******** END COMMENTS ******** *
開発3の枝:
* <developer 1> <date> <comment> *
* <developer 3> <date> <comment> *
* ******** END COMMENTS ******** *
ので、現像剤3が競合自分自身を解決します。この問題は、自分の変更をLiveにマージしようとするときに発生します。
ライブ:
* <developer 1> <date> <comment> *
* <developer 2> <date> <comment> *
* ******** END COMMENTS ******** *
開発3の枝:
* <developer 1> <date> <comment> *
* <developer 2> <date> <comment> *
* <developer 3> <date> <comment> *
* ******** END COMMENTS ******** *
きっとこの最後のシナリオは競合ではないでしょうか?開発者3のコードには単に行が追加されているだけなので、単純にマージする必要があります。しかし、これを繰り返し、この結果と、競合としてマークされます:
* <developer 1> <date> <comment> *
<<<<<<< .working
* <developer 2> <date> <comment> *
* ******** END COMMENTS ******** *
=======
* <developer 2> <date> <comment> *
* <developer 3> <date> <comment> *
* ******** END COMMENTS ******** *
>>>>>>> .merge-right
は、これは実際には正しい紛争である、またはSVNは間違いを犯していますか? これが繰り返されるのを防ぐためにできることはありますか?
ありがとうございます!
私はSVNが正しいと仮定し、それを修正します。それは "それはSubversionのせいだ"と言ったようなものではありません。個人的には、私はそれらのコメントブロックを削除するだろう。これがソースコード管理システムの目的です。開発者に説明的なコメントをコメントに追加させる。 – duffymo
返事を送ってくれてありがとう(そして@Bathshebaに)。 私たちは個々のログインでSVNコミットメッセージを使用するので、コードの先頭にあるコメントブロックは不要です。それは私たちがSVNを使用する前からのホールドオーバーです。 これらの競合が発生するのを防ぐ方法があるかどうかは、単純ではあるが頻繁に起こるときに修正するのに時間がかかるので、私は不思議に思っていました。 – djchallis
はい。コメントを削除します。それらを使用を停止します。 – duffymo