2015-10-09 2 views
0

Мы недавно столкнулись с некоторыми проблемами слияния, в которых один файл вызвал множество конфликтов, и это было просто сильно испорчено. Наше решение состояло в том, чтобы просто взять исходную копию (мы были обратным интеграцией), потому что не было возможности примирить все различия. Затем, при регистрации, этот файл не был проверен, потому что исходная версия уже соответствовала последней версии в целевой ветке.Какие варианты сравнения используют TFS при слиянии?

Моя первоначальная мысль заключалась в том, что, поскольку человек, делающий это слияние, не сделал последнего, сначала сравнивал версию Workspace вместо последней версии. Это возможность? И если да, есть ли способ заставить TFS всегда сравнивать последнюю версию при выполнении слияния?

+0

Если ветка источника соответствует ветке цели, почему вам нужно выполнить операцию слияния? И когда вы получили конфитюры? –

+0

@Patrick Ветви не совпадают, один файл в соответствующих ветвях, потому что мы ранее объединили изменения. Мы проводили обратную интеграцию, чтобы убедиться, что все наши изменения в других филиалах присутствовали в Main. –

ответ

0

Невозможно заставить TFS всегда сравнивать последнюю версию при выполнении слияния. Так как TFS сливает плечо с версией, что вы выбрали. Но есть обходное решение для его решения. Например:

Вы получаете ветку (changeet 98) в свою локальную рабочую область, чтобы сделать то же самое изменение. Но последняя версия на сервере TFS - это набор изменений 100. После того, как вы закончите свою работу, проверьте в ветке (получите набор изменений 101), вы можете объединить филиал (последний набор изменений версии 101) в свою целевую ветку.

Теперь целевая ветка, включая ваши изменения в наборе изменений 98, но не включая разницу между изменениями 100 и changest98. Вам нужно снова объединить ветку (выберите changest 100) в целевую ветку. Там могут быть конфликты, их можно только вручную решить.

Наконец, вы объединили последнюю ветку, включая все изменения в целевой бит.

+0

Это не значит, что никаких изменений для слияния не произошло, только этот единственный файл, который существует в обеих ветвях, прихватил массу конфликтов во время операции слияния. Затем, когда мы решили взять исходный файл для разрешения конфликтов, этот один файл не был зарегистрирован, потому что они были фактически одинаковыми. –

+0

Извините за недоразумение из-за вашего первого абзаца вопроса. Я обновил свой ответ, как указано выше. Надеюсь, это может быть полезно –

0

Чтобы слить последнюю версию, вам нужно выбрать Последняя версия как тип версии. enter image description here

+0

Да, но что это такое против? Если вы выбираете последнюю версию здесь, берет ли она последнюю версию ветви источника и сравнивает ее с версией рабочей области целевой ветви, или же она также использует последнюю версию целевой ветви? –

+1

Он сравнивается с локальной версией рабочей области целевой ветви. И вам будет предложено предупредить, что есть некоторые конфликты, вы можете разрешить конфликты с помощью инструмента слияния. –

+0

Спасибо, это была наша проблема. Человек, делающий слияние, сначала не сделал последнего, и в результате этого возникли конфликты. –

 Смежные вопросы

  • Нет связанных вопросов^_^