Слияние оверлеев INI
Объединение INI-конфигурации с одним или двумя оверлеями, так же как при развёртывании накладываются слоями значения по умолчанию, окружения и локальные настройки. Переопределённые значения редактируются на месте, поэтому комментарии, пустые строки, порядок ключей и отступы исходного файла сохраняются, а отчёт об изменениях показывает, какие ключи добавлены, изменены или оставлены без изменений.
Ввод
Значения по умолчанию. Комментарии, порядок и форматирование этого файла сохраняются в итоговом результате.
Применяется поверх базового файла. Затрагиваются только ключи, которые он перечисляет.
Применяется последним, поэтому имеет приоритет над первым оверлеем. Оставьте пустым для обычного слияния двух файлов.
Параметры
Комментарий в той же строке, что и ключ, сохраняется всегда, даже когда этот параметр выключен.
Вывод
| Секция | Ключ | Значение в базе | Объединённое значение | Изменение |
|---|---|---|---|---|
| No data yet | ||||
Другие способы использовать этот инструмент
REST API
curl -X POST https://api.iotools.cloud/v1/tool/ini-overlay-merger \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"baseIni": "; Application defaults — keep this file in versi…",
"overlayIni": "; production.ini\ndebug = true\n\n[server]\nhost = 0…",
"secondOverlayIni": "",
"newKeys": "add",
"preserveComments": "true",
"ignoreCase": "",
"assignment": "spaced"
}'Подставьте свой собственный ключ из аккаунта. Поля инструмента — это тело запроса, без обёртки.
Спросите у ИИ-агента
Use the IOTools `ini-overlay-merger` tool (INI Overlay Merger) on this input:
YOUR_INPUT_HEREВставьте это любому агенту, подключённому к MCP-серверу IOTools, и добавьте свой ввод.
Виджет для встраивания
<iframe
src="https://iotools.cloud/embed/ini-overlay-merger/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="Слияние оверлеев INI — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>Вставьте это на свою страницу — бесплатно, без ключа, нужна лишь обратная ссылка.
| Стоимость вызова API/MCP | От 5 кредитов |
|---|---|
| Нужно больше кредитов? | Посмотреть тарифы |
Также доступно через
Руководства
Что делает этот инструмент
В большинстве проектов на INI есть один файл с настройками по умолчанию и по одному небольшому файлу для каждого окружения: app.ini и production.ini или defaults.ini → staging.ini → local.ini. Ручное слияние этих слоёв — место, где возникают ошибки: пропускается ключ или в продакшн попадает устаревшее значение из базового файла.
Этот инструмент накладывает оверлей на базовый INI и показывает итоговый файл вместе с отчётом о том, какие ключи были добавлены, изменены или оставлены без изменений.
Большинство инструментов слияния пропускают оба файла через объект и заново сериализуют результат, при этом незаметно теряются все комментарии и меняется порядок ключей. Этот инструмент так не делает. Он редактирует значения на месте в базовом файле, поэтому комментарии, пустые строки, порядок ключей, отступы и даже встроенный комментарий в строке переопределяемого значения сохраняются после слияния. Результат можно сразу коммитить.
Как пользоваться
- Вставьте базовый INI (ваши значения по умолчанию) в первое поле.
- Вставьте оверлей, то есть файл конкретного окружения, во второе поле.
- По желанию добавьте второй оверлей. Он применяется последним и имеет приоритет над первым:
по умолчанию → окружение → локальные, в том порядке, в котором их на самом деле применяют при развёртывании. - Изучите таблицу Изменения, затем скопируйте или скачайте объединённый INI.
Всё происходит в вашем браузере. Ни один из файлов никуда не отправляется.
Настройки
- Ключи только в оверлее: Добавить (по умолчанию) дописывает в конец своей секции ключ, которого не было в базовом файле, и при необходимости создаёт секцию в конце файла. Игнорировать объединяет только те ключи, которые уже объявлены в базе. Это подходит, когда базовый файл — авторитетная схема, и опечатка в оверлее не должна незаметно создавать новую настройку.
- Сохранять строки комментариев и пустые строки базового файла: включено по умолчанию. Выключите, чтобы получить компактный итоговый файл без комментариев. Встроенные комментарии в строках ключей сохраняются в любом случае.
- Сравнивать имена секций и ключей без учёта регистра: одни парсеры INI не различают регистр, другие различают. Включите, если в оверлее написано
[Server], а в базе[server], и вы хотите, чтобы это считалось одной секцией. - Стиль записи для добавленных ключей:
key = valueилиkey=valueдля новых строк. Существующие строки сохраняют то оформление, которое было в базовом файле.
Отчёт об изменениях
В таблице отображается каждый ключ, которого коснулся оверлей, с его значением в базе, объединённым значением и одним из четырёх статусов:
- Changed: оверлей заменил значение на другое.
- Unchanged: оверлей задал значение, которое уже было в базе. Обычно это признак того, что оверлей устарел и эту строку можно удалить.
- Added: ключ был только в оверлее и добавлен в результат.
- Ignored: ключ был только в оверлее, выбран режим Игнорировать, поэтому в результат он не попал.
Статусы выводятся в таблице на английском языке, как показано выше.
Что с именами вида [section.subsection]?
Заголовки секций с точками обрабатываются как одно буквальное имя секции, а ключи сопоставляются поэлементно между файлами. Для слияния это безопасный вариант: ничего не перестраивается. Если нужно, чтобы заголовки с точками раскрывались во вложенный объект, пропустите результат через Конвертер INI в JSON.
Можно ли объединить больше трёх файлов?
Объедините первые три, вставьте результат обратно в поле базового файла и добавьте следующий оверлей. Чтобы сравнить две конфигурации, а не объединить их, подойдёт Сравнение текста: оно выводит построчный diff.