Таким образом, после нескольких длительных поисков в базе данных мне удалось взломать решение.Я не смог найти способ сделать это через пользовательский интерфейс, но есть две ключевые вещи, которые необходимо сделать в БД, чтобы заставить его работать.
Во-первых, вам нужно включить функцию, котораявключен в настройках репозитория.Хотя я не смог найти параметр в пользовательском интерфейсе, если вы измените что-либо из настроек по умолчанию в репо, объект JSON будет сохранен в таблице dbo.tbl_PolicyConfigurationRevision, которая включает в себя элемент «optimizedByDefault», который будет нулевым, измените его сот нуля до истины, и теперь эта функция будет включена в рассматриваемом репо.
В качестве альтернативы, это может быть выполнено с использованием конечной точки конфигурации политики для API TFS Rest, как описано здесь .Он немного сложнее и все еще включает в себя настройку JSON, но он проходит через официально открытые каналы, не требуя прямой манипуляции с БД, и правильно изменяет конфигурацию.
Во-вторых, вам нужно указать, какие "важные" ссылкиявляются.Существует хранимый процесс и пользовательский тип данных, чтобы помочь с этим.dbo.prc_UpdateGitLimitedRefCriteria принимает записи partitionId, dataspaceId, repositoryId и две пользовательские записи типа данных таблицы для совпадений в точных именах и совпадениях в именах и пространствах имен.Создайте таблицы с вашими важными ссылками в них и вызовите сохраненный процесс, чтобы добавить их в список.
Похоже, что в конечном итоге это происходит через сохраненный процесс prc_QueryGitRefs для фильтрации ссылок, так что вы можете посмотреть весли вам нужно больше подробностей о том, как их отформатировать, чтобы обработка работала корректно.
После еще нескольких экспериментов выясняется, что существует недокументированная конечная точка API и для LimitedRefCriteria, которая поддерживает получение и обновление критериев ref.
/tfs/*collectionName*/_apis/git/repositories/*repositoryId*/limitedRefCriteria
Интересно, что после того, как я узнал ключевое слово "optimized", похоже, что использование _optimized в имени репозитория, где в статье, описанной с использованием _full, также будет работать для отмены этой функции.Пример:
https://.visualstudio.com/Project/_git/_optimized/Repo
Если функция не включена по умолчанию, но используется путь _optimized, она вернет отфильтрованные ветви.Это также может быть более безопасный путь для тех, кто не хочет возиться с настройкой параметров json и хочет только добавлять записи через сохраненный процесс к ограниченным критериям refs.