TFS - ветвление для экспериментальной разработки: решение не загружается - PullRequest
1 голос
/ 04 сентября 2008

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

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

  • / DEV
  • / релизы
  • / * ветви 1012 *
  • / экспериментально-обновление

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

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

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

Если я скажу «да», он что-то делает, но в конечном итоге возвращается, не загружая несколько проектов. Если я говорю «нет», я получаю тот же результат.

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

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

ТИА.


UPDATE:

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

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

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

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

Идеи

Ответы [ 6 ]

2 голосов
/ 04 сентября 2008

@ Бен

На самом деле вы можете выполнить полное удаление в 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. Также у каждого своя методика ветвления. Моя задача состоит в том, чтобы ветвить релизы и выполнять всю разработку в папке разработки или корневой папке. Это также звучало так, как будто ветвление работало для вас нормально, просто файл решения был испорчен, что может быть связано с проблемой привязки и файлом vssss.

0 голосов
/ 04 сентября 2008

@ Cory:

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

0 голосов
/ 04 сентября 2008

@ Кевин:

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

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

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

0 голосов
/ 04 сентября 2008

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

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

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

0 голосов
/ 04 сентября 2008

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

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

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

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

0 голосов
/ 04 сентября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...