2016-10-26 6 views
1

Наши сборки, как правило, имеют заторную работу рабочих предметов и связаны с ними, и я не могу сказать, как TFS определяет, что добавить. Мы используем обновление TFS 2015 3 и TFVC.Как TFS выбирает, какие учетные записи должны связываться со сборкой?

Когда сборка запускается, она получает код из местоположения где-то в ветвлении и папке TFVC. Как правило, что-то вроде «root \ dev \ src \ имя компонента» таким образом мы избегаем получения всего кода в нашем репозитории, и у нас установлен CI, чтобы любые изменения в этой папке приводили к созданию CI-сборки.

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

Кто-нибудь знает, как это должно работать?

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

Похоже, что исходные настройки будут иметь общий корень между сопоставленными папками настроек репозитория, поэтому, если у меня есть 2 папки $/Relo/Dev/B1/src/Claims.Services и $/Relo/Dev/B1/src/PSScripts в качестве исходных настроек будет использоваться общий корень $/Relo/Dev/B1/src и включать любые изменения из этой папки в сборку. Может ли кто-нибудь подтвердить это? Конечно, это не то, что я хочу. На вкладке «История» определения сборки, если я посмотрел на diff, я вижу поле «defaultBranch» в json, которое, кажется, является значением, которое контролирует это, есть ли способ напрямую обновить это поле?

ответ

1

TFS определяет, какие изменения должны быть сопоставлены сборке на основе сопоставлений исходного репозитория (сборка vNext) в определении сборки и последней успешной сборке.

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

Пример отображения ниже приведет к каким-либо ревизией сделал ни к чему ниже $/Relo/Dev/B1/SRC (потому что это наименьшее общее основание):

  • $/Relo/Дев/В1/SRC /Claims.Services
  • $// Dev/B1/SRC/PSScripts Relo

Похожие будет забрать все соответствующие элементы работы в вышеуказанных ревизиями.

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

+0

Что вы подразумеваете под «Настройки источника»? Вы имеете в виду сопоставления репозитория? У меня есть 2 папки, сопоставленные $/Relo/Dev/B1/src/Claims.Services отображаются в $ (build.sourcesDirectory \ Claims.Services и $/Relo/Dev/B1/src/PSScripts, сопоставленные с $ (build.sourcesDirectory \ PSSCripts , но у меня есть наборы изменений, которые связаны со сборкой, которые включают файлы, которые поступают из-за пределов этих папок, ни одного из них. – Noel

+0

Да, сопоставления репозитория называются исходными настройками в сборке XAML Builds (извините, я все еще нахожусь на старой система). Я обновил ответ, чтобы включить это имя. Имеет ли ваши изменения какие-либо возможности файлы из потомка одной из сопоставленных папок? –

+0

Нет. Как я попытался объяснить выше при редактировании вопроса, кажется, что TFS Build изменит «Source Branch» или «defaultBranch» на самую низкую общую папку в ваших сопоставленных репозиториях. В моем примере в разделе комментариев самая низкая общая папка - «$/Relo/Dev/B1/src». Это, конечно, мой корень папка исходного кода, поэтому все изменения между сборками cluded. – Noel

0

@Noel - Я предполагаю, что вы используете сборку vNext, а не сборки XAML. Или вы используете сочетание XAML и vNext?

В общем случае запланированная сборка TFS свяжет все изменения, которые не были связаны в последнем успешном запуске одной и той же сборки.

Я предлагаю вам проверить еще раз, если исходные папки совпадают для сборки CI и Daily build?

+0

Мы используем сборки vNext. – Noel

+0

@Noel - Существуют ли только два определения сборки - 1 для CI и 1 для Daily? Вы подтвердили, что в разделе «Триггеры» определения сборки путь одинаковый для обоих определений сборки? –

+0

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