fix(db-dump-xml): Changes без тихой полной перевыгрузки, инкремент в ibcmd

- -update без -force: при другой версии формата — отказ с подсказкой
  про -Mode Full, а не молчаливая перезапись всего дерева в новом формате.
- Первая выгрузка режимом по умолчанию: в каталог без выгрузки (пусто,
  только .git/README) — полностью; выгрузка без ConfigDumpInfo.xml — ошибка.
- ibcmd: Changes через --sync; Full в непустой каталог — через временный
  каталог и копирование поверх, как пишет конфигуратор; ошибка копирования
  даёт код 1. UpdateInfo с -AllExtensions отвергается, а не выгружает всё.
- py-порт печатает вывод ibcmd, как PS.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ANXwbMUhuRFSCsq2RgmTTm
This commit is contained in:
Nick Shirokov
2026-09-24 18:08:20 +03:00
co-authored by Claude Opus 5.5
parent ce7238792e
commit f98e7e9e81
12 changed files with 514 additions and 18 deletions
@@ -0,0 +1,44 @@
{
"name": "ibcmd: Changes — инкремент через --sync, без --force (fake platform)",
"preRun": [
{
"writeFile": {
"path": "ibcmd.cmd",
"content": "@echo off\r\necho ARGS: %*\r\nexit /b 0\r\n"
}
},
{
"writeFile": {
"path": "ib/1Cv8.1CD",
"content": "stub"
}
},
{
"writeFile": {
"path": "out/ConfigDumpInfo.xml",
"content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ConfigDumpInfo format=\"Hierarchical\" version=\"2.17\"/>"
}
}
],
"args_extra": [
"-V8Path",
"{workDir}\\ibcmd.cmd",
"-InfoBasePath",
"{workDir}\\ib",
"-UserName",
"Admin",
"-ConfigDir",
"{workDir}\\out",
"-Mode",
"Changes"
],
"expect": {
"stdoutContains": [
"ARGS: infobase config export",
"--sync"
],
"stdoutNotContains": "--force"
},
"noSnapshot": "проверяется командная строка в stdout; каталог выгрузки — фикстура кейса",
"osOnly": "win32"
}