100個のファイルを変更し、TFSが数千個のファイルをマージしたいという問題について。これは通常、ブランチの名前を変更する(または削除してから削除を解除する、または移動する)ことによって発生します。これは私を数回噛みました、そして私はあなたの痛みを感じます。
私ができる最善のアドバイスは、ブランチを作成したら、そのままにしておくことです。移動したり、名前を変更したりしないでください。ブランチの場所または名前が間違っている場合は、ブランチを削除して新しいブランチを作成するときまで、ブランチをそのまま使用してください。
TFS 201xが舞台裏で機能する方法のため、ブランチのルートフォルダーを変更すると、効果的に別のオブジェクトに変換されます。ブランチを再度マージしようとすると、TFSはベースレスマージを実行します。これは、ブランチ内のすべてのファイルが変更されたように見えることを意味します(変更されていない場合でも)。これは新しい動作であり、古いバージョンのTFS(2005/2008)です。 )この問題に悩まされることはありません。
たとえば、次のようなチームプロジェクトがあります
$/TeamProject/Main
次に、「Main」から「Dev」というブランチを作成します
$/TeamProject/Dev
好きなだけマージでき、問題はないはずです。次に、複数の開発ブランチがある場合、フォルダー構造が少し乱雑になる可能性があると判断したため、チームプロジェクトのルートに「開発」というフォルダーを作成し、開発ブランチをこのフォルダーに移動します。
$/TeamProject/Development/Dev
さて、舞台裏での移動は名前の変更と削除です。古いdevブランチはまだ下にあり$/TeamProject/Dev
ます(これは、「ツール」、「オプション」、「ソース管理」、「チームファンデーションサーバー」に移動して確認できます)。 「削除されたアイテムをソース管理に表示する」という設定
と呼ばれるフォルダ$/TeamProject/Development/Dev
は実際にはまったく新しいものです!したがって、「メイン」とのマージ関係はありません。紛らわしいことに、IDEは関係を示しますが、実際には存在しません。初めてTFSにマージ$/TeamProject/Development/Dev
する$/TeamProject/Main
と、卑劣なベースレスマージが実行され、分岐関係が確立されます。
ブランチの名前を変更した場合も同じことが起こります(古いブランチは削除され、新しいブランチが内部で作成されます)
このブログでは、もう少し詳しく説明します