Включение проверки TFS в политику для правильного имени файла
Контекст: некоторые разработчики не соблюдают надлежащие соглашения об именах, прежде чем проверять свой код. Следовательно, эти артефакты не обнаруживаются процессом сборки, поэтому зависимости нарушаются и вызывают сбой после развертывания на целевых серверах. Например, файл, который содержит функцию БД GetMaxId()
должен иметь соглашение об именах, как GetMaxId.Function.Ora.Sql
Требование: возможно ли реализовать какую-либо политику регистрации для этого, чтобы разработчик мог уведомить о проблеме до регистрации. В этом процессе мы можем сэкономить массу времени и усилий.
2 ответа
Да, это возможно с помощью политики регистрации TFVC, которая будет работать внутри Visual Studio. Это пользовательская библиотека, которая должна быть развернута на каждом клиенте. Политика регистрации - это всего лишь фрагмент кода, который будет запускаться, когда пользователь открывает окна ожидающих изменений изменений.
Вам понадобится сборка политик для каждой версии Visual Studio, которую вы хотите поддерживать. Правильный набор библиотек фреймворков и т. Д. Можно найти здесь.
Вам нужно будет переопределить Evaluate
способ реализовать ваш чек. Вы можете получить доступ к списку ожидающих изменений через this.PendingCheckin.PendingChanges...
, Вот пример политики, которая просматривает файлы, выбранные для проверки:
public override PolicyFailure[] Evaluate()
{
if (PendingCheckin.PendingChanges.AffectedTeamProjectPaths.Length > 1)
{
return new[]{new PolicyFailure("Checking into multiple projects at the same time", this)};
}
var branches = this.PendingCheckin.PendingChanges.Workspace.VersionControlServer
.QueryRootBranchObjects(RecursionType.Full);
var groupedChanges = PendingCheckin.PendingChanges.CheckedPendingChanges.GroupBy(
change => branches.SingleOrDefault(branch => change.ServerItem.StartsWith(branch.Properties.RootItem.Item)));
if (groupedChanges.Count() > 1)
{
return new[]{new PolicyFailure("Checking into multiple branches at the same time", this)};
}
return new PolicyFailure[0];
}
Вам нужно будет выполнить собственный анализ файлов, которые вы хотите сопоставить с именем файла, или полагаться на другую библиотеку, чтобы сделать это за вас. Каркас политики Checkin просто дает вам доступ к пути к файлам.
Скорее всего, вам понадобится кэширование, если вы собираетесь анализировать файлы.
Нет такой существующей проверки в политике, однако вы можете применить Check-in Notes
уведомить разработчика о проблеме до регистрации.
Перейдите в Team Explorer-Home -> Настройки -> Контроль источника -> Добавить заметку о регистрации,
- Установите заголовок, например:
Please make sure maintain proper naming conventions before check in
- включить
Required on check-ins
Таким образом, система будет препятствовать тому, чтобы разработчик проверял изменения, не вводя примечания, а заголовок будет предлагать разработчику поддерживать надлежащие соглашения об именах перед регистрацией. После проверки введите примечания и зарегистрируйте изменения...