8

Subversion をソース管理システムとして使用し、VisualStudio プロジェクト ファイル (vcproj) を通常どおりソース管理システムに保存します。Subversion では、いかなる形のファイル ロックも使用しないため、2 人の開発者が同じプロジェクトで同時に作業していて、両方ともプロジェクトにファイルを追加したり、設定を変更したりした場合、2 番目にコミットする開発者が変更をマージする必要があります。

これらの変更をどのようにマージしますか?

vcproj ファイルは単なるテキスト ファイルであるため、手動で編集することはできますが、特に経験の浅い開発者にとっては、手動で編集するのはあまり適していません。

私が考えることができる方法は

  • svn から最新バージョンを取得し、すべてのローカル変更を手動で再追加します
  • ファイルを手動で編集して、自動マージによる競合を解決します
  • 同時変更を防ぐために何らかの形式のロック スキームを実装する
  • 開発者が同時に変更を加えないように、開発者間で合意する

現在、すべての変更を手動で再追加する最初のオプションを使用していますが、これには時間がかかり、より良い方法があるかどうか疑問に思っていました.

ソース ファイルでは、ほとんどの場合、自動マージ機能が機能し、多くの競合は発生しません。

4

7 に答える 7

4

オプション 2 (手動でファイルを編集する) は、適切な差分ツール (私はWinMergeを使用します) を使用している限り、一般的にかなりうまく機能することがわかりました。私が遭遇した主な問題は、Visual Studio がファイルの順序を変更することがあることです。ただし、優れた差分/マージ ツールがあれば、変更されたコンテンツと移動されたコンテンツを区別できるはずです。それは大いに役立ちます。

于 2008-10-03T13:22:44.213 に答える
3

Project: MergeまたはTools for SLN file が役に立つかもしれません

于 2010-10-23T05:41:49.997 に答える
1

ここではTFSを使用していますが、違いはないと思います。
また、ロックせず、プロジェクトファイルのマージを処理する必要がある場合もあります。私はそれがそれほど複雑であるか、または多くの問題であるとは思ったことがありません。自動的にマージできない問題が発生することはめったにありません。手動のマージプロセスは非常に簡単です。

これには1つだけ注意点があります。頻繁にチェックインしてください。プロジェクト構造に大きな変更を加え、すぐにチェックインしない場合、それらの変更は後のマージの複雑さを悪化させ始める可能性があります。プロジェクトの構造に大きな変更を加える場合、私は通常、全員に注意を向けます。私は彼ら全員に彼らの現在の仕事をチェックインするように頼み、それから自分でマージの世話をします。

于 2008-10-03T13:43:54.217 に答える
1

私は最近これを見つけました: http://www.codeproject.com/KB/macros/vcproj_formatter.aspx このツールを vcproj ファイルとその修正バージョンで実行すると、お気に入りのテキスト マージで簡単にマージできます。さらに、結果はよりコンパクトできれいな vcproj ファイルになります。

于 2010-12-05T22:12:28.117 に答える
1

これは難しい問題で、Visual Studio アーキテクチャの弱点だと思います。私たちが見つけた方法は、proj ファイルをソース管理にまったく入れず、構成設定を処理するビルド スクリプトを用意することでした。

代替案は非常に面倒で、開発者間でビルドや環境の一貫性を保証できませんでした。これにより、ダウンストリームの統合に関する膨大な数の問題が発生し、最終的にはプロジェクト ファイルをソース管理から削除するという厳しい措置を講じました。

開発者環境は依然として不整合になる可能性がありますが、開発者が自分で何かを構築しようとしたときにそれが現れました.

于 2008-10-03T13:26:43.003 に答える
0

オプション 1 と 2 は相互に排他的ではありません。開発者がジュニア レベルの場合は、オプション 1 (プロジェクト ファイルを再取得して変更をやり直す) がより快適であれば、オプション 1 を使用させます。上級開発者の場合は、オプション 2 (マージ ツールを使用したマージ) で問題ありません。

これは、現時点では特効薬がない状況だと思います。マージが面倒な場合もあります。

于 2008-10-04T00:02:50.663 に答える
-1

差分ツール ( WinMerge ) を使用して変更をマージします。プロジェクト ファイルは (ほとんどの場合) 非常に単純な XML です。ただし、ここで重要なのは、マージ時に予期せぬ事態が発生しないようにすることです。これは、適切なコミュニケーションが効果的なソース管理の基盤の一部であるためです。

プロジェクトへの同時変更は、人々がコミュニケーションをとっている限り、まったく問題ありません。

于 2008-10-03T13:23:35.397 に答える