Инструменты · Снапшоты
snapshot_read
Показывает точки сохранения и изменения после них — список снапшотов с поиском по метке, построчный diff, семантический diff языком метаданных (реквизиты, типы, элементы форм, права ролей) и историю одного файла.
Когда использовать
- Найти снапшот перед откатом —
listсfilterпо метке. - Что сделал агент —
diff_semantic: по объектам, а не по строкам XML. - Точная разница текста модулей —
diff. - Когда менялся файл и где его последняя хорошая версия —
history. - Долгий первый снапшот ушёл в фон — прогресс виден в
list.
Соседние инструменты домена «Снапшоты»
Операции
| operation | Что делает | Нужно передать |
|---|---|---|
listпо умолчанию | Снапшоты по убыванию даты: метка, идентификатор, число файлов и объём изменений у свежих. Если идёт фоновое создание снапшота — строка с этапом и прогрессом. | по желанию filter по метке |
diff | Построчный diff между снапшотом и текущим состоянием (или другим снапшотом). | snapshot_id; по желанию against, paths |
diff_semantic | Изменения по объектам: у объектов метаданных — узлы, свойства, типы (Строка(50) → Строка(100)); у форм — элементы, обработчики, команды; у прав ролей — объекты, права, ограничения, шаблоны; модули — обычным diff. | snapshot_id; по желанию against, paths |
history | Все снапшоты, в которых менялся файл; без path — журнал всех снапшотов. | по желанию path |
Параметры
| Параметр и тип | Обязательный | Описание | По умолчанию |
|---|---|---|---|
operationстрока | нет | Операция инструмента — значения и их смысл в таблице «Операции».значения: list · diff · diff_semantic · history | list |
snapshot_idстрока | для diff, diff_semantic | Идентификатор снапшота — сокращённый или полный, из list или ответа create. | — |
againstстрока | нет | С чем сравнивать: current — текущее состояние (по умолчанию) или идентификатор другого снапшота. | current |
pathsмассив (строка) | нет | Шаблоны путей для diff и diff_semantic, например **/Forms/**. Синтаксис шаблонов отличается от шаблонов командной оболочки. | — |
pathстрока | нет | Для history: путь файла от папки рабочей области — <проект>/src/…. | — |
filterстрока | нет | Регулярное выражение без учёта регистра. Для list — по метке снапшота; для остальных операций — по строкам ответа. | — |
limitцелое | нет | Окно чтения: сколько строк готового ответа вернуть. По умолчанию 200, максимум 1000. | 200 |
offsetцелое | нет | Окно чтения: номер строки ответа, с которой начать (0 — первая страница). Значение для следующей страницы подсказывает строка *lines: …* в конце ответа. | 0 |
Таблица собрана из схемы инструмента, которую получает агент при подключении.
Адреса
Адрес fqn не используется: снапшот задаётся идентификатором snapshot_id, файл — путём path от папки рабочей области.
Пример вызова и ответа
{ "operation": "diff_semantic", "snapshot_id": "<идентификатор>", "paths": ["**/Forms/**"] }Пример ответа в подготовке Устройство ответа — на странице Формат ответов.
Отказы и ошибки
Снапшот не найден
Идентификатор устарел: после удаления или переименования снапшота из середины списка более поздние снапшоты получают новые идентификаторы. Возьмите актуальный из list.
Занято
Идёт фоновое создание снапшота: diff с текущим состоянием и другие операции, которым нужно хранилище, сразу отвечают «занято». Прогресс — в list.
failed · Unknown operation
Неизвестное значение operation. В ответе — fix_hint: supported: … со списком допустимых операций и секция Did you mean. Допустимо: list, diff, diff_semantic, history.
failed · лицензия
Без действующего ключа инструмент отвечает карточкой failed с сообщением лицензия: … и подсказкой, где ввести ключ; в секции Context — список инструментов, доступных без ключа. Подробнее — Лицензия и бесплатный доступ.
Ограничения
- Объём изменений в
listсчитается только для 20 свежих снапшотов. - Операции, которые ждут занятое хранилище, во время фонового создания снапшота отвечают отказом «занято» сразу, а не зависают.