Программно обновлять файлы в рабочей области TFS - PullRequest
4 голосов
/ 14 апреля 2011

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

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

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

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

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

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

Спасибо!

1 Ответ

2 голосов
/ 14 апреля 2011

Не делайте слепую копию файлов. Вместо этого пусть ваша программа перебирает их по очереди.

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