Follow

А как вы мерджите обычно конфиг-файлы, которые настроили под себя, и новые, которые обновил разработчик или мэинтейнер пакета?

@rf

Короче, нашёл, что в Дебиане есть утилита ucf, которая должна предоставлять удобный diff. Но она говно.

Короче, попробовал я mcdiff. Стрёмная хрень на первый взгляд, и никак не поймёшь сразу, что операцию Merge оно производит только в одну сторону и именно над той частью, которая находится вверху экрана - она никак не выделяется.
Но поняв все эти приколы я справился с разросшимся конфигом matrix-synapse.

@skobkin Оно именно красиво смержит их конфиг с моими изменениями?

@Revertron Понятия не имею, что ты имеешь в виду под красивостью.
Это обычная обёртка над стандартными тулзами для подобного заточенная конкретно под конфиги.

Можешь сказать "бери всё от вендора", "бери всё от меня", "давай мерджить интерактивно" или "давай я вообще всё сам".

@skobkin Что-то я даже в репах не нашёл ни то, ни другое.

@Revertron
Скорее всего, оно только с Portage работает.

@skobkin @Revertron не просто "работает".
Они оба в коробке с ним и идут

@skobkin @Revertron А как это чисто теоретически даже возможно?

Если конфиг поменял структуру или часть параметров потеряла актуальность.

@shuro Ну я, например, в своём проекте предусмотрел автоматический апгрейд конфига. В Yggdrasil тоже предусмотрели. А остальные разрабы говно, значит.
@skobkin

@skobkin @Revertron Нет, автор как раз это предусмотреть может (и это даже не круто, это так и должно быть), но вот сделать это за автора и в виде какого-то универсального инструмента уже не получится.

К сожалению, миграция настроек есть далеко не везде.

@Revertron @shuro

Тут речь о разных вещах. Автоапгрейд конфига - это так называемая "миграция". Это одно.
А вот то, что пушится мейнтейнером с апдейтом пакета - это другое. Тут твой софт вообще не может ничего знать о том, что в голову мейнтейнерам взбрело. А они просто могли решить, например, что в их дистрибутиве дефолтное значение параметра X будет не Y как у тебя в ванильной сборке, а Z и это ты сам никак не заменеджишь.

@skobkin @Revertron В этом случае максимум можно построчно сравнивать.
Так как в дельте версий параметр может отсутствовать, к примеру. Причём как по той причине, что его больше нет, так и потому, что он есть и сброшен в дефолт.

Можно, наверное, под конкретный проект написать тулзу для миграции конфига, но точно не что-то универсальное.

@Revertron @shuro
Смотри другой мой коммент:
lor.sh/@skobkin/10614925288657

Это не разрабы говно, а разные вещи.

Более того, в некоторых ситуациях (например, когда несколько инстансов разных версий работают) автоматическая миграция может быть деструктивна.

@shuro @Revertron

Если структуру - только вручную.

@Revertron @rf
Я использую ОС NixOS. Вся конфигурация хранится в файлах .nix. Для хранения настроек использую git репозитории.
В итоге нет таких проблем с обновлениями конфиг-файлов - все нужные изменения вношу в .nix файл и делаю git коммит.

@Revertron
Кладу свои правки в имяконфига.conf.d обычно.

@rf

Sign in to participate in the conversation
Mastodon on ZHub

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!