Программное обновление файлов в рабочей области tfs

#visual-studio #sdk

#visual-studio #sdk

Вопрос:

Я работаю над расширением для Visual Studio для обновления проекта.
Ситуация следующая:

  1. Мы создаем новый проект на основе шаблона.
  2. Мы поместили решение в tfs
  3. Мы изменяем проект, который использовался для создания шаблона. Проект на сервере tfs все еще нуждается в обновлении.
  4. Мы публикуем проект в папке. Теперь я хочу обновить файлы в репозитории TFS текущими файлами в папке публикации

Я подумал о следующем подходе:
В приложении у нас хранятся все проекты, которые находятся на сервере TFS. Когда я хочу обновить определенный проект, я выбираю проект из базы данных. Затем я загружаю этот проект с сервера TFS и создаю новую проверку для этого проекта. Пока все хорошо. Проблема возникает, когда я копирую файлы из опубликованной папки в новую проверку. Файлы, которые уже зарегистрированы в рабочей области, помечаются как измененные, но новые файлы не добавляются.

Единственное решение, которое я могу придумать, это добавить все файлы через TFS SDK. Но это кажется мне довольно тяжелым.

Итак, у меня есть пара вопросов:

  1. Правильный ли это подход к обновлению проекта?
  2. Есть ли какой-либо другой способ добавить файлы в рабочую область вместо добавления всех файлов через TFS SDK?

Спасибо!

Комментарии:

1. Как часто вы это делаете? 20 раз в день? Раз в месяц?

2. Примерно раз в три-четыре недели для более чем 100 проектов

Ответ №1:

Не делайте слепое копирование файлов. Вместо этого пусть ваша программа выполняет итерации по ним один за другим.

  • Сначала обновите свою рабочую область последней версией TFS.
  • Затем для каждого файла в исходном каталоге:
    • Если файл существует в целевом каталоге, «отложите редактирование» файла, затем скопируйте его.
    • Если файл не существует, скопируйте файл, затем «отложите добавление» файла.
  • Когда вы закончите, проверьте все ожидающие изменения в рабочей области.

Комментарии:

1. Точно — если вы собираетесь использовать TFS, используйте TFS так, как это было задумано (проверьте файлы для редактирования, затем проверьте, а затем зафиксируйте изменения).

2. Спасибо за ответ! Я буду использовать ваш подход.