Как работает слияние TFS? - PullRequest
4 голосов
/ 30 марта 2012

У нас есть пара разработчиков, которые поддерживают слияние вручную в TFS 2010, это когда вы открываете две визуальные студии, одну с исходной веткой и другую с целевой ветвью, и вы вручную копируете и вставляете свои изменения.

Они делают это так, потому что считают автоматическое слияние опасным (так как оно влечет за собой изменения других разработчиков, даже если вы этого не хотели). И типичный тестовый пример следующий:

Исходная ветвь:

TestFile.cs
Changesets:
1. Line 5 changed
2. Line 13 changed

Целевая ветвь:

No changes yet.

Теперь я хотел бы объединить только набор изменений №2 для TestFile.cs

Какие строки будут содержаться в результирующем TestFile.cs в целевой ветви, если объединятся автоматически: исходная строка 5 и измененная строка 13 или обе строки 5 и 13 изменились?

На самом деле я видел оба варианта и не знаю почему.

Было бы здорово иметь любую ссылку на отличное описание того, как именно работает слияние TFS.

Расширенный сценарий: Исходная ветвь:

TestFile.cs
Changesets:
#1. Line 5 changed, Line 6 added
#2. Line 13 changed

Целевая ветвь:

No changes yet.

Если я только объединю набор изменений № 2, что я должен получить в целевой ветви? Буду ли я менять только строку 12 в соответствии с набором изменений № 2.

1 Ответ

5 голосов
/ 30 марта 2012

Если вы выберете объединение, откроется следующее диалоговое окно:
enter image description here
Если вы просто выберите «Далее» и сохраните настройку по умолчанию = «Все изменения до определенной версии», TFS будет примите во внимание оба ваших набора изменений (1 и 2): другими словами, он выделит Testfile.cs в целевой ветви и отредактирует оба строки 5 и 13.
Если вы выберете «Выбранные наборы изменений» "(как отмечено на рисунке выше), появится другое диалоговое окно, в котором вы сможете выбрать, какие из возможных наборов изменений вы действительно хотите принять в объединении. Итак, если вы сейчас выберете changeset 2, TFS будет проверять Testfile.cs в целевой ветви и редактировать только строку 13.

То, что вы описываете как «ручное» слияние, - извините за многословие - ужасно практика.

Редактировать
На твой вопрос Расширенный сценарий: Исходная ветвь: Я получу только строку 13, измененную в соответствии с набором изменений # 2
Ответ - это определенное «Да».

Один из способов изолировать ситуацию - начать с игровой площадки. -папка в SourceControl и попытаться с вашими коллегами определить, что происходит. TFS-слияние действительно просто, этот старый пост может быть полезен для ваших расследований.

Я могу согласиться с вашей позицией "Ошибки TFS очень низки в моем списке приоритетов", с другой На вашем месте - я бы рассмотрел в качестве первоочередного вопроса Практику слияния в вашей организации. То, что вы описываете, на мой взгляд, просто не может продолжаться.

...