0

VS2010ExpressプロジェクトでTotoiseSVNクライアントとAssemblaバックエンドを使用しています。VSフォルダー(またはフィルター)が削除され、ファイルがプロジェクトに追加されない場合があるという問題があります。.vcxprojファイルと.vcxproj.filtersファイルをコミットすると、変更する必要がある場合でも、デフォルトでチェックされないことに気付きました。だから私は手動でそれらをチェックし、彼らがコミットするときに他の人にもそうするように言いました。

これは、チームメンバーAがチェックアウトし、一部のコードのみを変更し、チームメンバーBがプロジェクトをチェックアウトし、プロジェクトにファイルを追加した場合に問題を引き起こす可能性があります。チームメンバーBがチームメンバーAの前にコミットした場合、チームメンバーAのプロジェクトファイルには新しいファイルが追加されていないため、チームメンバーBのプロジェクトは、チェックインしたチームメンバーBのプロジェクトファイルを上書きし、新しく追加されたファイルは追加されません。プロジェクト。

素晴らしい調整を行う以外に、どうすればこれを回避できますか?

4

2 に答える 2

1

CMakeはこれに最適です。

CMakeに出会ったことがない場合は、svnの外部で、プロジェクト全体のビルドファイルをソースファイルとは別のディレクトリに作成できます。

リポジトリのルートにある単一のCMakeLists.txtファイルは、現在のすべての.vcxprojファイルと.filtersファイルを置き換えます。

于 2012-05-14T20:59:15.533 に答える
1

ここで起こっているのは、開発者が新しいファイルを追加するときにプロジェクトファイルを保存していないことだと思います。VS2008はデフォルトでこれを行いましたが、VS2010では、明示的に[ファイル]->[すべて保存]を実行するまで保存されないと思います。結果として、変更がコミットされていないことを意味します。開発者がコミットする前にプロジェクトファイルを保存する習慣を身に付けたら、99%の時間でSVNがすべてのマージを処理します。残りの1%の時間は、誰かがプロジェクトファイルのより大きな再構築を行ったか、2人がビルド設定に競合する変更を加えたときです。このような場合、手作業で解決する必要があります。

SVNは、ある人の変更を別の人で上書きすることはなく、常にマージを試みます。したがって、この問題が発生した場合は、ある人が他の人の変更をロールバックしている、または外部で変更されたときにファイルを再読み込みするように設定されたVisualStudioのオプションがないことを示していますTools -> Options -> Documents -> Detect when file is changed outside the environment

この問題に対処する効果的な方法は、単純なビルドサーバーをセットアップすることです。たとえば、チェックインが行われた後、定期的にビルドを開始するJenkinsを使用します。ビルドが失敗した場合、チェックインした人は、ビルドが壊れたことを知らせるメールを受け取ります。また、ビルドステータスを表示するモニターを使用して、壊れたビルドをチーム全体で見やすくし、ビルドを修正しておくよう全員に促すこともできます。

于 2012-05-14T21:56:07.543 に答える