Как объединить только выбранные файлы из набора изменений в TFS - PullRequest
2 голосов
/ 24 марта 2020

Мне нужно объединить ревизию с другой веткой в ​​TFS. Но, к сожалению, из-за нежелательной проверки кода в этом наборе изменений я не могу объединить полный набор изменений с новой веткой. Поэтому мне нужно пропустить ненужные файлы из набора изменений и объединить другие файлы в новую ветку. Есть ли возможность сделать это? PS: так как набор изменений огромен, я не могу слить его вручную.

1 Ответ

2 голосов
/ 25 марта 2020

Вы можете сделать то, что вы собираетесь достичь, вроде частичного слияния.

A частичное объединение записывается, когда только некоторые изменения из набора изменений объединяются с целью . Ниже приведены два общих сценария ios, в которых вы можете получить частичное слияние:

Сценарий 1: отменить некоторые ожидающие изменения при проверке объединенных файлов

В этом случае, даже если мы уже слили набор изменений Dev в Main , он все еще остается кандидатом на слияние. Это вызвано тем фактом, что механизм слияния обнаружил, что в этом наборе изменений все еще есть некоторые изменения, которые не были переданы из Dev в Main.

Сценарий 2: Выполнение слияния на уровне объектов не из начало ветви

Например: предположим, что у вас есть две ветви Main и Dev , каждая из которых имеет две папки (Feature1 и Feature2) и каждая папка содержит один файл. Мы редактируем оба файла из папок компонентов (Dev\Feature1\feature1.txt и Dev\Feature2\feature2.txt) и регистрируем изменения.

Если вы выполняете операцию слияния на уровне Feature1. ( Changset142 → Changeset143 ) В окне Pending Changes вы заметите, что будет объединено только редактирование, выполненное в папке Feature1. Завершите слияние.

Если вы посмотрите на историю слияния папки Feature1, то увидите, что все изменения из набора изменений 142 были объединены с набором изменений 143.

Однако, если вы Если взглянуть на историю слияния Main, вы увидите, что только части набора изменений 142 были объединены с набором изменений 143. Это нормально, так как набор изменений 142 имеет некоторые изменения - редактирование файла в папке Feature2 - которые не были доставлены.


В случае частичного объединения выяснить, какие изменения были объединены и какие изменения из набора изменений были исключены. Единственный способ добиться этого - diff содержимое набора изменений, которое было частично объединено, и содержимое набора изменений, которое было сгенерировано в результате объединения. Более подробную информацию вы можете найти в этом блоге: Частичные слияния в TFS - Руководство

Таким образом, если ваш нежелательный код существует только в одном или нескольких файлах, вы можете следовать сценарию 1, отменить эти файлы ,

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

Это должно быть самым простым решение.

...