Встроенная политика регистрации транзакций TFS не настраивается - она просто смотрит, не сработала ли последняя сборка, и если да, то она показывает предупреждение политики в Visual Studio. К сожалению, он считает, что «последняя» сборка была последней, прошедшей вовремя, а не последней, с последней версией набора изменений. В результате политика может быть прозрачной, даже если все будет нарушено. Рассмотрим такой сценарий:Создание пользовательской политики «Builds» TFS
Джо совершает код в набор изменений 1234, и он начинает строить «Awesome Build» Джон совершает код в набор изменений 1235, и он начинает строить «Потрясающие Build», а также, но изменить набор 1235 содержит перерыв
Поскольку у меня есть несколько агентов сборки, обе сборки запускаются одновременно.
Теперь скажем, что сборка Джона заканчивается первым и терпит неудачу из-за перерыва - политика сборки теперь находится в состоянии Broken - предупреждение о том, что вы не можете проверить (как и ожидалось).
Joe's build завершает второе и успешно - политика построения на этом этапе вернется к четкому состоянию, и предупреждение не появится. (не ожидается, последний набор изменений все еще сломан и должен быть исправлен).
Я знаю, что TFS позволяет мне создавать свои собственные правила регистрации, компилируя класс, реализующий «Microsoft.TeamFoundation.VersionControl.Client.PolicyBase». Есть некоторые вопросы, хотя здесь:
только официальной документации я мог бы найти здесь (https://msdn.microsoft.com/en-us/library/bb668980.aspx) и, как следует из страницы, это содержание не является устаревшим и больше не поддерживается. Означает ли это, что существует новый/лучший/более простой способ реализации пользовательской политики регистрации?
Кто-нибудь знает, где я могу найти документацию, относящуюся к написанию этих политик, в частности политику «Builds» для решения проблемы, описанной выше. Я бы хотел, чтобы моя политика регистрации была введена в действие на основе последнего набора изменений, а не самого последнего времени сборки.
Любая помощь, которую вы можете дать, будет отличной. Это исправление политики поможет решить многие головные боли в моей очень большой группе разработчиков.
Почему бы просто не использовать закрытую регистрацию (TFVC) или направить запросы + политики ветвления (Git) вместо этого? Политики регистрации - это боль, которую нужно поддерживать и распространять, и ее можно легко обойти, либо не используя Visual Studio, либо полностью удалив сборку политики. –
TFS Gated check-ins будет работать, но это обременяет наши уже обработанные налогом агенты сборки и добавит больше накладных расходов, чем мы готовы представить. Я бы предпочел Git, но мы пока не готовы менять VC-системы.Я тоже не поклонник политики регистрации, но это задача, которую меня просят решить. Спасибо за ввод. – jobo54321