I have a release branch (RB, starting at C5) and a changeset on trunk (C10) that I now want to merge onto RB.
The file has changes at C3 (common to both), one in CS 7 on RB, and one in C9 (trunk) and one in C10). So the history for my changed file looks like this:
RB: C5 -> C7
Trunk: C3 -> C9 -> C10
When I merge C10 from trunk to RB, I'd expect to see a merge window showing me
C10 | C3 | C7
, поскольку C3 - это ревизия общего предка, а C10 и C7 - концы двух моих веток соответственно. Однако мой инструмент слияния показывает мне C10 | C9 | C7
.
Мой инструмент слияния настроен на отображение % 1 (OriginalFile) |% 3 (BaseFile) |% 2 (Modified File)
, поэтому это говорит мне, что TFS выбрала C9 в качестве базовой версии.
Это совершенно неожиданно и полностью противоречит тому, как я привык работать с слиянием в Mercurial или Git. Я что-то сделал не так или TFS пытается свести меня с ума с помощью слияния?
Это стандартное поведение слияния TFS? Если да, то можете ли вы объяснить, почему они решили реализовать это таким образом?
Я использую TFS 2008 с VS2010 в качестве клиента.