Я только что провел последние 6 месяцев, перенося около 100 репозиториев VSS в TFS, поэтому я чувствую вашу боль! Я сделал это только в TFS 2008, но нет никаких причин, почему он не должен работать в 2010 году.
Я бы отнесся к необоснованному слиянию как к последнему средству, так как вы застряли при выполнении слияний из командной строки.
Хитрость заключается в том, чтобы установить связь между ветвями, прежде чем импортировать свой код.
(в качестве примера я буду использовать простую ветвь одного разработчика, но вы сможете использовать одну и ту же теорию независимо от количества ветвей)
Создайте новый командный проект, создайте свой «ствол», затем перейдите к «dev». Теперь у вас должно быть две пустые ветви.
Импортируйте ваш код в "trunk" и "dev".
При слиянии от "trunk" к "dev" вы почти наверняка столкнетесь с множеством конфликтов, TFS должен быть достаточно умным, чтобы игнорировать файлы и папки, которые одинаковы, но не всегда. Вам нужно будет решить, какой из конфликтующих файлов вы хотите сохранить (обычно это файлы из ветки «dev», но вам, вероятно, нужно, чтобы кто-то, кто понимает код под рукой, принял решение)
Теперь у вас должно быть 2 ветки, заполненные кодом, которые связаны между собой.
Если у вас есть несколько веток «dev», то я думаю, что вы всегда должны сначала сливаться из «trunk» в «dev», это устанавливает отношения и дает вам возможность сохранить версию кода в «dev» как это, вероятно, более недавно, чем версия в "стволе"
В вашем конкретном случае я бы следовал вышеприведенному, но вместо того, чтобы импортировать ваши файлы (шаг 2) из файловой системы, вы могли бы ветвить код из своего "старого" командного проекта в новый, т.е.
филиал $/oldTeamProject/Devbranch
в $/NewTeamProject/DevBranch
и $/oldTeamProject/Trunk
в $/NewTeamProject/Trunk
затем объединить $/NewTeamProject/Trunk
в $/NewTeamProject/DevBranch
Я делал это пару раз в TFS 2008, и это работает как обаяние (за исключением боли при первоначальном разрешении конфликтов). Сказав, что я бы порекомендовал сделать «пробную» миграцию, просто чтобы убедиться, что вы охватили все углы. Если все работает нормально, вы можете сохранить результат, если нет, то должны были выучить некоторые уроки для реальной миграции: -)
Если вы переименовали какие-либо файлы или папки, TFS не будет знать, как установить связь, и вы получите дублирование в своей ветке «dev» после слияния. У вас возникнет та же проблема, если вы выполните безосновательное слияние на уровне папок. Боюсь, что это нелегко. вам просто нужно следить за всем, что выглядит как оно было переименовано, и вручную разрешать их после слияния.