--diff <file1> <file2>
- Open a file difference editor. Requires two file paths as arguments.
--merge <path1> <path2> <base> <result>
- Perform a three-way merge by providing paths for two modified versions of a file, the common origin of both modified versions, and the output file to save merge results.
--wait
- Wait for the files to be closed before returning.
--new-window
- Opens a new session of VS Code instead of restoring the previous session (default).
--sync <on | off>
- Turn sync on or off.
Compare two files:
-C utf8-bom -nl %baseCfgTitle -nr %secondCfgTitle %baseCfg %secondCfg
Three-way merge:
-C utf8-bom -nl %baseCfgTitle -nr %secondCfgTitle -nb %oldVendorCfgTitle %oldVendorCfg %baseCfg %secondCfg %merged
По функциональности похоже на vscode
. Используем этот шаблон для составления утилиты которая будет запускать vscode
.
Compare two files:
--diff %baseCfg %secondCfg --new-window --sync off
Three-way merge:
--merge %baseCfg %secondCfg %oldVendorCfg %merged --new-window --sync off --wait
Платформа кидает пути со смешанными слешами, например такие:
"C:\Users\zeegin\AppData\Local\Temp\mrg/CommonModule.DistributedModule.Module(File C__Users_zeegin_Downloads_1Cv8_1.0.2.cf).txt"
Пути в файлах кидаются с расширением .txt
а чтобы в vscode
работала подсветка должны быть .bsl
.
Потому надо обернуть в создание файлов .bsl
копированием.
Платформа ожидает результат в %merged
, однако сам файл не создает. vscode
хочет чтобы в --merge ... <result>
файл уже был.
Потому надо файл создать, например копированием %secondCfg
, а после завершения работы vscode
уже кинуть в путь, который ожидает платформа.
У батч скриптов есть два варианта получения параметров коммандной строки:
%1
- получает параметр по индексу1
включая кавычки"
если они есть.%~1
- получает параметр по индексу1
исключая кавычки"
если они есть.
Обычная команда copy
плохо работает с путями со смешанными слешами, потому лучше использовать xcopy
.
- При установке
vscode
выбирите пункт добавление программы вPATH
, тогда ее можно открывать командой консолиcode
. - Выбирите в конфигураторе
Сервис
->Параметры
->Сравнение/Объединение
->Создать
. - Переименуйте в
VSCode
. - Впишите исполняемый файл полный путь до
vscode-adapter.cmd
, напримерC:\git\vscode-merge-tool-adapter-cli\vscode-adapter.cmd
. - Введите команду для сравнения двух файлов:
--diff %baseCfg %secondCfg
- Введите команду для трехстороннего объединения:
--merge %baseCfg %secondCfg %oldVendorCfg %merged
- Выберите
VSCode
в качестве редактора.- Показывать различия без учета структуры.
- Режим
Объединить с помощью внешней программы
.