TFS 2010 Build получить часть рабочего пространства на основе метки - PullRequest
3 голосов
/ 08 февраля 2012

У меня есть автоматическая сборка в TFS 2010 со следующим рабочим пространством:

$/Program 1   $(SourceDir)\Program 1
$/Core        $(SourceDir)\Core

Затем я строю как основные проекты, так и проекты, определенные в программе 1, как часть сборки. Однако, делая исправления ошибок для предыдущей версии, мне нужно получить определенную метку основных файлов, но самую последнюю для файлов программы 1. Как я могу изменить рабочую область только для основного каталога, чтобы получить метку вместо получения самой последней.

Я знаю, что могу создать ветку из метки для папки Core, но поскольку исправление ошибки присутствует только в файлах Программы 1, я не хочу создавать новую ветку, в которой нет изменений.

1 Ответ

1 голос
/ 08 февраля 2012

Итак, у вас есть решение, которое импортирует код из разных TeamProjects.
Это не совсем оптимальная настройка, еще одна гибкая альтернатива может быть следующей:

$/Program1
    /SharedSources
       /Core_branch
          Core.csproj
    /Sources
       /Program1
          Program1.csproj
       /Program2
          Program2.csproj
       Sources.sln

Если бы вы настроили свою SCM-структуру подобным образом, вам просто нужно определить следующее в определении вашей сборки:
$/Program1 $(SourceDir)

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

На ваш конкретный вопрос «Как я могу изменить рабочую область только для каталога Core, чтобы получить метку вместо получения самой последней.»:
В вашей собственной рабочей станции / рабочей области вы можете получить предыдущую версию, а затем используйте Cloak , чтобы исключить Core из следующего GetLatest. Это может позволить вам проводить анализ, даже создавать наборы полок, содержащие изменения в Program1, которые исправляют любые ошибки.
Но, поскольку маскирование не используется во время сборки (см. здесь для интересного сообщения), Я полагаю, что в конечном итоге вы вынуждены продолжить работу с веткой, чтобы собрать исправления.

...