Если вы хотите синхронизировать ветви так, чтобы дочерняя ветвь была идентична родительской, я бы просто взял новую ветку из родителя. Это самый простой способ убедиться, что они полностью совпадают. Затем вы можете удалить \ архив старой дочерней ветви.
Если вы сливаете из родителя к ребенку TFS будет проверять все файлы в отрасли и применяются следующие правила
- Если файл был изменен в родительском, но не в ребенке (так дочерняя ветвь), то файл из родителя перезапишет файл в дочернем элементе.
- Если файл в дочернем файле был изменен, но не в родительском (поскольку дочерняя ветвь была создана), то файл в дочернем файле не будет перезаписан
- Если файл был изменен как в дочернем, так и в родительский (поскольку дочерняя ветвь была создана), то TFS откроет вкладку разрешения конфликта, и вам будет предоставлена возможность сохранить либо версию файла, либо объединить файлы, создающие 3-ю версию, содержащую комбинацию изменений ,
На вкладке «Разрешение конфликта» вы можете выбрать все файлы и выбрать вариант сохранения родительской версии. Однако любые файлы, измененные только у ребенка не будет переписан (смотри пункт 2)
Вы также можете использовать параметр командной строки
tf merge $/Project/Parent $/Project/Child /force /recursive
Это покажет TFS, чтобы попытаться объединить файлы, которые уже думает, что они были объединены с файлом. Я все еще не думаю, что он объединит файлы, которые не изменились с момента создания ребенка.
Согласен с первой частью вашего заявления. Если вы пытаетесь вернуться к родительской ветке, повторно привяжите ее к старой ветке (удалите или уничтожьте, в зависимости от того, что вам нужно). – Robaticus
Еще одно замечание: если вы используете командную строку и у вас много файлов, используйте '/ noprompt', затем загляните в команду' tf resolve', чтобы разрешить конфликты слияния как пакетные, без взаимодействия с пользователем. – Robaticus