TFS - Ветвление для экспериментальной разработки:Решение не загружается

StackOverflow https://stackoverflow.com/questions/42490

  •  09-06-2019
  •  | 
  •  

Вопрос

Отказ от ответственности:Я застрял на TFS, и я ненавижу это.

Моя структура управления исходным кодом выглядит следующим образом:

  • /разработчик
  • /релизы
  • /филиалы
  • /экспериментальнаямодернизация

Я перешел от разработки к экспериментальному обновлению и не трогал его.Затем я проделал еще кое-какую работу в dev и объединился с experimental-upgrade.Каким-то образом TFS пожаловалась, что у меня были изменения как в источнике, так и в цели, и я должен был их устранить.Я выбрал "Скопировать элемент из исходной ветки" для всех 5 элементов.

Я проверяю экспериментальное обновление до локальной папки и пытаюсь открыть там основной файл решения.TFS подсказывает мне:

"Недавно в это решение были добавлены проекты.Хотели бы вы получить их из системы управления версиями?

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

Сравнение моего sln в обеих ветвях говорит мне, что они равны.

Кто-нибудь может сообщить мне, что я делаю не так?Это должна быть простая операция ветвления / слияния...

ТИА.


Обновить:

Я заметил, что если я нажму "да" в приведенном выше диалоговом окне, проекты будут загружены в $ / root системы управления версиями...(т.е.из папок dev & branches)

Если я открою решение в ветке и удалю мертвые проекты и попытаюсь повторно добавить их (щелкнув правой кнопкой мыши sln, добавьте существующий проект, выберите проект, расположенный в папке ветки, это выдает ошибку...

Не удается загрузить проект c:\sandbox\my_solution\proj1\proj1.csproj, файл был удален.Путь к проекту, который я пытался добавить, выглядит следующим образом:c:\sandbox\my_solution\branches\experimental-upgrade\proj1\proj1.csproj

На что, черт возьми, направлены эти проекты снаружи из их местного корня?Файл решения идентичен файлу в ветке разработки, и эти проекты загружаются просто отлично.Я также просмотрел файлы vspscc и vssscc, но ничего не нашел.

Идеи?

Это было полезно?

Решение

@Ben

На самом деле вы можете выполнить полное удаление в TFS, но это настоятельно не рекомендуется, если вы не знаете, что делаете.Вы должны сделать это из командной строки с помощью команды tf destroy

tf destroy [/keephistory] itemspec1 [;versionspec]
           [itemspec2...itemspecN] [/stopat:versionspec] [/preview]
           [/startcleanup] [/noprompt]

Versionspec:
    Date/Time         Dmm/dd/yyyy
                      or any .Net Framework-supported format
                      or any of the date formats of the local machine
    Changeset number  Cnnnnnn
    Label             Llabelname
    Latest version    T
    Workspace         Wworkspacename;workspaceowner

Непосредственно перед тем, как вы это сделаете, убедитесь, что вы попробовали это с помощью /preview.Кроме того, у каждого есть своя методология ветвления.Моя задача - разветвлять релизы и выполнять всю разработку в папке development или root.Также это звучало так, как будто ветвление работало нормально для вас, просто файл решения был испорчен, что может быть из-за проблемы с привязкой и файлом vssss.

Другие советы

@Ник:Пока в это не было внесено никаких изменений.Возможно, мне придется удалить его и повторно разветвить (однако вы действительно не можете полностью удалить в TFS)

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

Не зная больше о настройке вашего решения, я не могу быть уверен.Но, если у вас есть какие-либо ссылки на проект, которые могли бы это объяснить.Поскольку у вас есть подпапка "experimental-upgrade" в разделе "ветви", ваши относительные пути изменились.

Это означает, что когда VS раньше искал ваши проекты, на которые вы ссылались, в ..\ ..\ project \ что угодно, теперь он должен искать в .. \ .. \ ..\ project \ что угодно.Обратите внимание на дополнительное ..\

Чтобы исправить это, вам нужно повторно добавить ссылки на ваш проект.Я не нашел лучшего способа.Вы можете либо удалить их и добавить заново, либо перейти в окно свойств и изменить путь к ним, а затем перезагрузить их.В любом случае, вам придется переделать свои ссылки на них из любых проектов.

Кроме того, проверьте свои рабочие папки, чтобы убедиться, что он не загрузил ни один из ваших проектов в неправильные папки.Иногда такое может случиться...

Есть пара вещей.Одинаковы ли структуры папок?Можете ли вы успешно удалить и перечитать ссылки на проект?

Если вы создадите решение, а затем вручную добавите все проекты, сработает ли это?(Возможно, это невыполнимо - у нас есть решения для более чем сотни проектов).

Еще одна вещь (и это может показаться глупым) - после того, как вы создали ветку, вы ее зафиксировали?Мне интересно, разветвлялись ли вы и не регистрировали ли это, а затем слились, а затем, когда вы попытались зарегистрироваться, TFS была сильно сбита с толку.

@Кевин:

Это означает, что когда VS раньше искал ваши проекты, на которые вы ссылались, в ....\project \ что угодно, теперь он должен искать в ......\project \ что угодно.Обратите внимание на дополнительное ..\

Возможно, вы в чем-то здесь правы, однако это не объясняет, почему одни проекты загружаются, а другие нет.Я пока не нашел корреляции между ними.

Я думаю, что попробую повторно добавить проекты и посмотрю, сработает ли это.

@Кори:

Я думаю, это то, что я собираюсь попробовать...У меня около 20 проектов, и 8 или около того не загружаются.Структуры папок идентичны корневым...т. е.:там нет никаких ссылок за пределами DEV.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top