2

私はankhsvnを使用して、VisualStudioのプロジェクトで友人とコラボレーションしています。

同じソースファイルには変更を加えていませんが、2人で同じプロジェクトに頻繁に変更を加えています。

.csprojVSが行っている自動変更とファイルを処理するようにSubversionに指示する方法を理解するのに苦労してい.slnます。私が見るように、私には2つの選択肢があります。

  1. 通常のバージョン管理下でファイルをインクルードする.csprojと、コミットする前に更新するたびに、友人が私の前にコミットして.csprojファイルにいくつかの変更を加えたため、競合が発生します。
  2. ファイルを無視リストに入れる.csprojと、私のプロジェクトには友人が行ったすべての変更が含まれないため、問題が発生します。

したがって、どちらの方法でも、競合を解決するか、依存関係の問題などを解決する必要があります。

これを行う簡単な方法はありますか?

ありがとう。

4

3 に答える 3

4

私の経験では、#1が唯一の選択肢です。両方とも.csprojを定期的に編集しており、.csprojの性質上、両方の変更は常にファイルの同じ領域で行われるため、競合が発生します。

絶対に#2を避けてください。競合を誤って解決することを心配しているので、これを実行したいと思うだけです。VSで「参照の追加」を使用する方が簡単であることがわかります。.csprojファイルのほとんどの競合解決(両方とも定期的に依存関係を追加していると想定しています)は、TortoiseMergeで「それらの前に私のものを使用する」またはその逆を使用することになるため、これは行いません。マージツールを使用しておらず、テキストエディターで実行している場合は、TortoiseSVNを試して、簡単にマージできるようにすることをお勧めします。

于 2012-04-25T13:17:32.770 に答える
2

I believe your issue is by design. You should not exclude the project file.

Actually the smart way to do this is to separate your code into multiple projects / modules / libraries. In that case your project files may change but since you work in a different one it's not a problem. Everything is kept together in a solution file which only changes if you add / remove projects. Of course this means that you need to plan your software project and define modules before implementing them but thinking before doing is rarely a bad choice.

Edit: You may want to think about a different version control system as well. Something like mercurial or git should help since you only pull / merge the changes that you need.

于 2012-04-25T13:19:16.047 に答える
0

svnで.slnファイルと.csprojファイルを処理するための簡単な提案をしたいと思います。

プロジェクトを完全に更新することから始めます。

ファイルのロックを取得し、他の誰もファイルに変更をコミットできないロックメカニズムを探します。私のようにTortoiseSVNを使用している場合は、https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-locking.htmlを参照してください。

次に、通常どおりファイルをすばやく追加します(ファイルツリーにファイルを追加し、プロジェクトに含めるように指示します)。

次に、編集した.slnファイルと.csprojファイルとともに新しいファイルをコミットします。

コミット後にsvnがロックを解放しない場合は、ここで解放します。

今、あなたは明確になっているはずです。あなたは、ソリューションとプロジェクトファイルがあなたのために働くことを知っています。ただし、友人が新しい.slnまたは.csprojに更新する前に.slnまたは.csprojを編集した場合、それらは機能しない可能性があります。この場合、彼または彼女はおそらく、.slnまたは.csprojを削除し、それらをロードしてから、残りを処理する必要があります。(ファイルをソリューションまたはプロジェクトに再度追加する必要があるのか​​、それともVisual Studioで追加するのかはわかりません。)

プロジェクトがそれらを認識し、このプロセスでコミットするために、空のファイルを追加できることに注意してください。それは速いので、他の誰かが同時に編集している可能性は低いです。その後、いつでも通常どおりファイルを編集できます。まだ信頼できるものを何も書いていなければ、コンテンツは必要ありません。ソリューションを壊さないようにファイルにコンテンツが必要な場合は、後で置き換える有効なコンテンツをファイルに与えることを検討してください。

誰か他の提案があれば、私はそれらを聞いてみたいと思います。ただし、この投稿は現在3歳です...

于 2016-01-06T18:55:49.577 に答える