2014-12-08 6 views
4

У меня есть проект TFS, созданный для непрерывной интеграции. Моя проблема в том, что проверки других проектов TFS запускают сборку моего проекта, даже если в мой проект не было внесено никаких изменений.Checkins to TFVC Team Projects запускает сборку в проекте Git Team

Кажется, что мой проект является репозиторием Team Foundation Git, и ни один из других проектов не является.

Где я могу узнать, что вызывает эту сборку?

Редактировать: Чтобы быть более понятным, я имею в виду, что у меня есть полностью отдельные проекты Team. Все они, кроме одного, используют Team Foundation Version Control, кроме одного, который использует Git. Как бы то ни было, проверки в проектах TFVC Team инициируют сборку проекта Git Team

+1

Checkins против TFVC запускает сборку против Git repo? Теперь **, что ** - интересная морщина. –

ответ

4

В нашем случае это было определено как ошибка в TFS от Microsoft.

ServerItem колонка в tbl_BuildDefinitionMapping для соответствующей сборки был установлен в положение "$ \".

Исправление я получил от Microsoft было изменить что-то, что не существует, как:

$ \ GIT_NOTAFOLDER \

Эта проблема решена для меня.

Вам необходимо найти определение построения в tbl_builddefinition. Как только вы нашли его, запомните DataspaceId.

Затем откройте tbl_builddefinitionmapping и искать DataspaceId сверху. Вы должны увидеть, что ServerItem: $ \. Измените это на $ \ GIT_NOTAFOLDER \ и он должен решить проблему.

+0

Я не мог найти DataspaceId в любой точке базы данных с помощью sys.columns (TFS Version 12.0.31101.0), но я нашел, что в tbl_BuildDefinitionMapping мой проект с git repo был присвоен той же рабочей области, что и другие проекты, которые запускают сборку. –

+0

$ \ GIT_NOTAFOLDER \ обходной путь, о котором вы говорили, работает и, похоже, не повлиял на нашу сборку каким-либо другим способом. Спасибо! –

0

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

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

enter image description here

+0

Поскольку это репозиторий git, на вкладке настроек источника нет раздела «Рабочие папки»: http://i.imgur.com/NcvnHTE.png. Я попробовал это после удаления «refs/heads/*», но это не изменило ситуацию. Есть ли другой способ изменить рабочее пространство? –

+0

(Возможно, это полезно, но это не решает мою проблему.) –

0

CI основан на Git репозиторий всегда контролировать весь репозиторий. Единственный фильтр, который вы можете добавить, - это отслеживать некоторые ветви, но вы не можете «скрыть» папки или файлы, как вы могли, с классическим TFVC.

+0

Кажется, проблема в том, что она контролирует папки * вне * репозитория. Если вы не имеете в виду репозиторий как этот проект, а также все проекты, отличные от git, хранящиеся на сервере TFS? У меня есть продукты A и B, которые используют TFS, а продукт C использует git. Всякий раз, когда кто-то проверяет продукты A или B, C решает построить. –

+1

Вы имеете в виду Team Projects, которые используют TFVC в качестве исходной системы или другие .proj в одном и том же хранилище Git? –

+0

Я имею в виду проверки в других командных проектах, которые используют TFVC, запускают мой проект Git Team для сборки. –

0

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

Я все еще не уверен, как они были связаны.

+0

Я думал, что это исправлено, но это не так. Кажется, у кого-то тоже есть эта проблема: http://stackoverflow.com/questions/21906809/check-ins-to-tfs2013-source-control-triggers-ci-build-associated-with-separate-t –