Несколько вещей для проверки ... но перед тем, как вносить какие-либо изменения в структуру TFS / проекта, я рекомендую проверить все текущие изменения (для всех команд), выполнить последние действия для извлечения всех этих изменений и выполнитьрезервная копия всей вашей локальной папки рабочего пространства.
Один момент, который мне нужно уточнить, чтобы полностью ответить вам ... какие подпапки разветвляются?IE вы обычно используете от MSB/Main
до TeamProjectA/Main
или отдельные проекты, например, MSB/Main/Enterprise/Project1
, Project2
и т. Д .?
Сначала : проверьте сопоставления рабочей области ... в Visual Studio откройте проводник управления версиями.В верхней части окна есть раскрывающееся рабочее пространство ... выберите "Управление рабочими пространствами ..." и отредактируйте основное рабочее пространство.
В идеале есть только одна рабочая папка, отображающая корень вашей TFS.проект (в вашем случае '$') в корневую локальную рабочую папку.Если у вас более одной рабочей папки, убедитесь, что вторая (-ые) папка (-и) не являются подпапками корня.То есть у вас не должно быть отдельной папки для $/TeamProjectA/Main/Enterprise/Project1
.Если вы это сделаете, удалите его и получите последнюю версию из корня.
Это мое первое предположение, потому что если TeamProjectB/Project1
сопоставлен с папкой TeamProjectA
, то не имеет значения, сколько развы меняете ссылки, вы всегда будете загружать проект команды B.
Второй : Вы делаете ветку только один раз.Все после этого сливается, и вы можете объединяться только между непосредственным родителем и детьми (если только вы не перепрыгиваете через обручи, чтобы вручную связываться со слиянием ... стрельба в 9 странах).
Это означает, что до тех пор, пока Project1
был отделен от TeamProjectB
, вы всегда будете привязаны к TeamProjectB
... Вы можете исправить ссылки в TFS для каждой команды и для проекта, но когда вы сливаете TeamProjectA
обратно в MSB
, Project1 не будет сливаться в MSB
со всем остальным.
Мне непонятно, что случилось бы ... либо этот проект просто не слился ни с чем, либо он вернулся в папку TeamProjectB
.Я сильно сомневаюсь, что последний случай, но первый тоже не имеет особого смысла ... Я бы почти ожидал, что TFS каким-то образом закоротит.
Я предполагаю (завершите WAG), что, поскольку вы смогли разветвляться Project1
с TPB
до TPA
, вы не разветвляетесь /Main
или /Main/Enterprise
... Я надеюсьответ в том, что TFS
не позволит вам перейти в подпапку другой ветви.
Чтобы исправить это
Слияние Project1
назад к TPB
.Регистрация.
Слияние TPB/Project1
назад к MSB
.Регистрация.
Выберите TPA/Project1
.Перейти к File -> Source Control -> Branching and Merging -> Reparent
.Выберите MSB's Project 1
в качестве нового родителя.Если ваши ветки сделаны из /Main
или /Main/Enterprise
, вам придется переписываться от того, какой корень ветки есть.(Обратите внимание, что если TPB/Project1
не был получен из MSB
, это не будет вариантом ... Перейти к плану 'B')
Не уверен, что вы можете / должны проверить эти изменения в ... выполните проверку на TPA и MSB, чтобы быть в безопасности
Plan 'B' : Если это не сработает, вам придется удалить TPA/Project1
и повторно перейти с MSB
.Перед тем, как сделать это, убедитесь, что все объединено до MSB
(и зарегистрировано).
TFS может жаловаться на повторный переход в существующий каталог (поскольку он хранит историю удалений TPA/Project1
) ... Я не думаю, что это произойдет, но еслиэто так, вам придется использовать инструмент командной строки для окончательного удаления TPA/Project1
.Команда tf destroy
... убедитесь, что вы запускаете ее из локальной папки TPA/Project1
, иначе tf не сможет разрешить сервер / путь tfs.
HTH!Джеймс