2016-02-02 5 views
5

2つのプロジェクト(FirstNewProject)を持つメインブランチからTFSブランチを作成したが、そのブランチで作業が進行中で、別のブランチが作成された(SecondNewProject)タスクは終了し、他のブランチは元に戻されました。プロジェクトIDの競合でソリューションファイルをマージするベストプラクティス

我々はすぐに戻ってこれらのブランチの両方が私たちが今、明らかにのみ、手動で解決することができるソリューションファイルで競合している分枝鎖れたから、主枝にその最初のブランチをマージしようとすると...

最初の競合はFirstNewProjectとSecondNewProjectの両方のソリューションファイルで同じであるSccNumberOfProjects = 3のTFS変数となりますが、SecondNewProjectをマージしてプロジェクト数を3としたが、FirstNewProjectの数を合併するためSccNumberOfProjects = 4に変更する必要があります。プロジェクトが現在4です。

この変数を手動で4に変更すると無効ですソリューションファイル?

2番目の競合はグローバルセクション内にあり、プロジェクトの番号付けと関係します。

SccProjectUniqueName3 = FirstNewProject\\FirstNewProject.csproj 
SccProjectName3 = FirstNewProject 
SccLocalPath3 = FirstNewProject 

しかしFirstNewProjectは今第四のプロジェクトですが、私たちは

にこれらのエントリを変更する必要があります。

SccProjectUniqueName3 = SecondNewProject\\SecondNewProject.csproj 
SccProjectName3 = SecondNewProject 
SccLocalPath3 = SecondNewProject 

FirstNewProjectはソリューションファイルにこれらの行を追加しました:

SecondNewProjectはソリューションファイルにこれらの行を追加しました

SccProjectUniqueName4 = FirstNewProject\\FirstNewProject.csproj 
SccProjectName4 = FirstNewProject 
SccLocalPath4 = FirstNewProject 

を手動で使用すると、ソリューションファイルが無効になりますこのような状況で元に戻って合併するときに何か他のことがありますか?あなたの分岐構造が似ていると仮定すると、

答えて

1

FirstNewProject 
/
Main branch 
\ 
SecondNewProject 

は今、あなたはFirstNewProjectとSecondNewProjectの両方で編集し、メインブランチのほか、SecondNewProjectにFirstNewProjectをマージしたいしています。 SecondNewProjectのSccNumberOfProjectsは3ですが、FirstNewProjectのSccNumberOfProjectsは4ですので、メインブランチのSccNumberOfProjectsが混乱していますので、3または4でなければなりません。

SccNumberOfProjectsの変更を依頼した理由がわかりません。ソリューションファイルが無効になります。メインブランチと他のブランチ間でマージを実行するので、ソースブランチとターゲットブランチは同じにする必要があります。支店の面では

とマージの戦略は、基本的な分岐計画は、次のスクリーンショットに示すように次のようになります。

enter image description here

メインブランチは、開発との間の接合部の枝で、枝をリリース。このブランチは、QAまたは外部チームと共有できる安定した製品のスナップショットを表す必要があります。リリースブランチは、リリースの準備としてコードを分離することです。そして、すべての変更は開発ブランチで起こるはずです。開発ブランチでコードがうまく動作したら、メインブランチにマージします。ソリューションをリリースする場合は、メインブランチからリリースブランチにマージします。

シナリオでは、どのブランチを使用しているかを確認し、ブランチを修正して競合を解決する必要があります。その後、ブランチ戦略に従ってブランチを管理することができます。

4

slnをマージするのはひどい経験です。しかし、私はこの問題の別の解決策を見ています - どうしてローカルのバージョンを保持し、それに手動で新しいプロジェクトを追加してください(Visual Studioから)。これはマニュアルですが、エラーが起こりにくいことがわかります

+1

はい、マージソリューションは、GUIで参照される相互関連項目を持つミニデータベースであるため、実際の悪夢です。だからマニュアルであっても説明する手順に従ってください:マージのブランチの1つのソリューションを選択し、もう一方のプロジェクトを手動で追加します。 – SERWare

関連する問題