Перейти к основному содержанию

Слияние оверлеев INI

API reference

Объединение 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 и показывает итоговый файл вместе с отчётом о том, какие ключи были добавлены, изменены или оставлены без изменений.

Большинство инструментов слияния пропускают оба файла через объект и заново сериализуют результат, при этом незаметно теряются все комментарии и меняется порядок ключей. Этот инструмент так не делает. Он редактирует значения на месте в базовом файле, поэтому комментарии, пустые строки, порядок ключей, отступы и даже встроенный комментарий в строке переопределяемого значения сохраняются после слияния. Результат можно сразу коммитить.

Как пользоваться

  1. Вставьте базовый INI (ваши значения по умолчанию) в первое поле.
  2. Вставьте оверлей, то есть файл конкретного окружения, во второе поле.
  3. По желанию добавьте второй оверлей. Он применяется последним и имеет приоритет над первым: по умолчанию → окружение → локальные, в том порядке, в котором их на самом деле применяют при развёртывании.
  4. Изучите таблицу Изменения, затем скопируйте или скачайте объединённый INI.

Всё происходит в вашем браузере. Ни один из файлов никуда не отправляется.

Настройки

  • Ключи только в оверлее: Добавить (по умолчанию) дописывает в конец своей секции ключ, которого не было в базовом файле, и при необходимости создаёт секцию в конце файла. Игнорировать объединяет только те ключи, которые уже объявлены в базе. Это подходит, когда базовый файл — авторитетная схема, и опечатка в оверлее не должна незаметно создавать новую настройку.
  • Сохранять строки комментариев и пустые строки базового файла: включено по умолчанию. Выключите, чтобы получить компактный итоговый файл без комментариев. Встроенные комментарии в строках ключей сохраняются в любом случае.
  • Сравнивать имена секций и ключей без учёта регистра: одни парсеры INI не различают регистр, другие различают. Включите, если в оверлее написано [Server], а в базе [server], и вы хотите, чтобы это считалось одной секцией.
  • Стиль записи для добавленных ключей: key = value или key=value для новых строк. Существующие строки сохраняют то оформление, которое было в базовом файле.

Отчёт об изменениях

В таблице отображается каждый ключ, которого коснулся оверлей, с его значением в базе, объединённым значением и одним из четырёх статусов:

  • Changed: оверлей заменил значение на другое.
  • Unchanged: оверлей задал значение, которое уже было в базе. Обычно это признак того, что оверлей устарел и эту строку можно удалить.
  • Added: ключ был только в оверлее и добавлен в результат.
  • Ignored: ключ был только в оверлее, выбран режим Игнорировать, поэтому в результат он не попал.

Статусы выводятся в таблице на английском языке, как показано выше.

Что с именами вида [section.subsection]?

Заголовки секций с точками обрабатываются как одно буквальное имя секции, а ключи сопоставляются поэлементно между файлами. Для слияния это безопасный вариант: ничего не перестраивается. Если нужно, чтобы заголовки с точками раскрывались во вложенный объект, пропустите результат через Конвертер INI в JSON.

Можно ли объединить больше трёх файлов?

Объедините первые три, вставьте результат обратно в поле базового файла и добавьте следующий оверлей. Чтобы сравнить две конфигурации, а не объединить их, подойдёт Сравнение текста: оно выводит построчный diff.

iniconfigmergeoverlayenvironmentdeployment

Нравятся инструменты? Уберите рекламу.

Один платёж навсегда убирает всю рекламу с вашего аккаунта. Без подписки, без слежки.