Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, Sshur, Вы писали:
DR>>>>То же самое с реестром. Экспортируй каждую ветку из HCKU\Software, и Гит точно так же покажет неверсируемые файлы. C>>>Что значит "каждую ветку"? Там основная ветка — это SOFTWARE. Но её тоже нельзя просто так экспортировать из-за мусора в SOFTWARE\Microsoft. S>>А что кто-то писал про .gitignore? Игнорировать никак? C>Ага, никак. Так как часть мусора из \Microsoft — тоже важна.
Речь шла о хранении настроек пользовательского ПО, которое в \Microsoft — ни ногой. А если вы хотите полный слепок настроек системы делать, то вам наверно в другой топик. И потом, \etc — разве не пользовательские настройки? а если там и системные есть, то вам точно так же придется копаться и выбирать, что надо, а что нет. Но это не тема обсуждения
Потом, супер задача у вас какая? Хранение настроек же не самоцель. См. ниже
S>>И вы каждый день ставите новое приложение и требуется добавление новых конфигов в сурс-контрол? C>Нет, я могу _пропустить_, что надо какую-то ветку добавить. И таки софт я ставлю достаточно часто.
Если это для домашней работы, то случай уж больно неспецифический. Помнить для себя когда и что меняли?
C>В общем, попробуй вместо теоризирования сделать то что ты говоришь на практике. Я _уже_ пробовал. И даже написал файловую систему с backend'ом в виде реестра. Всё равно не получается нормальной работы.
Как уже писал, думаю что практика общения с настройками разнообразного ПО у меня достаточная. Так вот, я могу опять-таки только предположить, зачем потребовалось конфиги в source control хранить. Это если у вас большое количество серверов и большое количество админов — и все что-то меняют, и виноватого не найти в случае чего.
А если вы хотите всего лишь перенести систему на домашнем компьютере на новое железо — то вам опять таки в другой топик.
S>>И что-то вы в моей ветке подозрительно замолчали C>Где именно?
Там, где я просил рассказать, в чем же суть "правильной" системы конфигов
Шурыгин Сергей
"Не следует преумножать сущности сверх необходимости" (с) Оккам
Здравствуйте, Воронков Василий, Вы писали: ВВ>Какой, блин, гном? Винда, товарищ, винда.
Собери гном под винду. Следующий. (с), анекдот.
ВВ>А разделять это значит — хранить в реестре например
Нет, реестр не нужен.
ВВ>Потом что вам даст это разделение-то? Закодированный пароль в конфиге так и так не особо мешает. Но вы не сможете вручную добавить регистрацию хоста и все.
А, я понял, ты теперь выдвигаешь аргумент, что не все конфиги можно редактировать обычным текстовым редактором. Ну да, не все. Только это не аргумент в пользу реестра.
Здравствуйте, Cyberax, Вы писали:
C>>>Ещё раз — ты говоришь как теоретик. Попробуй положить результат экспорта _всего_ реестра в VCS и посмотри что получится. ВВ>>Зачем мне класть туда содержимое *всего* реестра? C>А иначе другие проблемы.
Если ты собираешься реализовать аналог стандартного виндового восстановления (хотя на кой — он же и так есть), то реестр *в любом случае* бэкапить придется. Если нужно отслеживать изменения в конфиге для нескольких приложений, то в случае с реестром процедура будет практически такая же, как и в случае с текстовым файлом — и никаких проблем.
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, Воронков Василий, Вы писали: ВВ>>Ну причем тут линукс, ну правда, а? Речь про Винду ведь. MC>При том, что это пример ОС, где сформировалась культура работы с конфигами. Значит, у нее надо учиться — и размышлять, где какой подход был, и чего из этого получилось, а не сравнивать абстрактные файлы с абстрактным реестром, чем ты сейчас и пытаешься заниматься.
Для того, чтобы говорить конкретно нужно привести конкретные альтернативы с конкретными же — для Винды именно — преимуществами перед реестром. Я не вижу таких преимуществ.
— хранить в сурс-контроле можно и настройки из реестра
— править можно и реестр руками, просто прекрасно, особенно если стандартное УГ заменить на более удобные утилиты
— переносятся настройки из реестра не хуже, чем любые другие
Ну и где преимущества? И главное, что предлагается взамен? Я как раз пока и слышу про некий "абстрактный" текстовый файл.
Здравствуйте, Mr.Cat, Вы писали:
ВВ>>Потом что вам даст это разделение-то? Закодированный пароль в конфиге так и так не особо мешает. Но вы не сможете вручную добавить регистрацию хоста и все. MC>А, я понял, ты теперь выдвигаешь аргумент, что не все конфиги можно редактировать обычным текстовым редактором. Ну да, не все. Только это не аргумент в пользу реестра.
Это вообще не аргумент в пользу чего-либо — ни реестра, ни файлика. И то и другое можно прекрасно редактировать руками, если способ сериализации настроек конкретного приложения это позволяет. И то, что ряду пользователей, в особенности юниксоидов, привычнее ковыряться к текстовых конфигах тоже, согласись, не аргумент против реестра.
Здравствуйте, Mr.Cat, Вы писали:
CC>>>>Визуалка стоит, приструнённая и обученная вести себя прилично. MC>>>А как? CC>>FAR + hands.sys MC>А конкретнее? Как отучить VS при установке писать на системный диск?
Пусть ставит. Потом копируешь на другой диск и создаёшь симлинк.
Здравствуйте, Воронков Василий, Вы писали: ВВ>Для того, чтобы говорить конкретно нужно привести конкретные альтернативы с конкретными же — для Винды именно — преимуществами перед реестром. Я не вижу таких преимуществ. ВВ>- хранить в сурс-контроле можно и настройки из реестра ВВ>- править можно и реестр руками, просто прекрасно, особенно если стандартное УГ заменить на более удобные утилиты ВВ>- переносятся настройки из реестра не хуже, чем любые другие ВВ>Ну и где преимущества?
Вот именно. Никаких преимуществ у реестра нет. Поэтому реестр смело отправляется на^W в сторону бритвы Оккама.
ВВ>И главное, что предлагается взамен? Я как раз пока и слышу про некий "абстрактный" текстовый файл.
Ну да, текстовый файл в произвольном формате.
Здравствуйте, Mr.Cat, Вы писали:
ВВ>>Ну и где преимущества? MC>Вот именно. Никаких преимуществ у реестра нет. Поэтому реестр смело отправляется на^W в сторону бритвы Оккама.
Ага, и изобретается свой велосипед, который, помимо всех проблем реестра, добавит еще и букет собственных.
ВВ>>И главное, что предлагается взамен? Я как раз пока и слышу про некий "абстрактный" текстовый файл. MC>Ну да, текстовый файл в произвольном формате.
Ну и где же те самые "проверенные временем" практики работы с конфигами в Юниксе, которые ты тут рекламируешь? Я что-то так и не услышал ничего.
Здравствуйте, Воронков Василий, Вы писали: ВВ>Ага, и изобретается свой велосипед, который, помимо всех проблем реестра, добавит еще и букет собственных.
Давай конкретнее. Это, кстати, уже обсуждалось сравнительно недавно — могу поискать линк на ветку.
ВВ>Я что-то так и не услышал ничего.
А ведь все уже было сказано.
Здравствуйте, Воронков Василий, Вы писали: ВВ>Ну и где же те самые "проверенные временем" практики работы с конфигами в Юниксе, которые ты тут рекламируешь?
Ты несколько искажаешь мои слова. Я говорил о культуре, а не о практиках.
Здравствуйте, Mr.Cat, Вы писали:
ВВ>>Ага, и изобретается свой велосипед, который, помимо всех проблем реестра, добавит еще и букет собственных. MC>Давай конкретнее. Это, кстати, уже обсуждалось сравнительно недавно — могу поискать линк на ветку.
Нужен ленивый конфиг — пишем свой велосипед, или один файл конфига превращается, скажем, в 20. Уже не так удобно, правда?
Где его хранить? Куда-нибудь в недра Documents and Settings? Isolated Storage, а потом три еще три гуида. Бац, а теперь мы не можем файл с длинным именем создать — длина пути ведь в винде ограничена.
У программы автосохранение. Ну и автоматическое сохранение конфига при выходе. Выходим в момент автосохранения — бац, файл занят. Надо синхронизацию прикручивать.
Есть настройки для копирования, есть те, которые привязаны к конкретной машине (размер окна, его положение и пр.). Снова плодить дополнительные файлы? А когда у нас плагин для приложения будет свои system specific настройки сохранять — ширину панелек и проч. — куда кидать? В еще более отдельный файл?
Операция записи в конфиг не атомарно. Слетели при попытке перезаписать конфиг — слетят все настройки. (А с реестром в худшем случае потеряете только последние изменения)
ВВ>>Я что-то так и не услышал ничего. MC>А ведь все уже было сказано.
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, Воронков Василий, Вы писали: ВВ>>Ну и где же те самые "проверенные временем" практики работы с конфигами в Юниксе, которые ты тут рекламируешь? MC>Ты несколько искажаешь мои слова. Я говорил о культуре, а не о практиках.
— Чем плохо использовать реестр в винде?
— Тем, что в линуксе есть "культура" работы с текстовыми конфигами.
—
Здравствуйте, Воронков Василий, Вы писали: ВВ>- Чем плохо использовать реестр в винде? ВВ>- Тем, что в линуксе есть "культура" работы с текстовыми конфигами.
Да. Там не было реестра и культура сформировалась. А в винде был — и теперь ты текстовый конфиг представляешь себе не иначе как C:\GUID\GUID\GUID\GUID.cfg. Реестр тебя испортил.
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, Воронков Василий, Вы писали: ВВ>>- Чем плохо использовать реестр в винде? ВВ>>- Тем, что в линуксе есть "культура" работы с текстовыми конфигами. MC>Да. Там не было реестра и культура сформировалась. А в винде был — и теперь ты текстовый конфиг представляешь себе не иначе как C:\GUID\GUID\GUID\GUID.cfg. Реестр тебя испортил.
Меня испортил не реестр, а альтернативы, предлагаемые реестру той же Майкрософт. Например, Isolated Storage. Которые я пытался использовать.
Да, файл можно красиво назвать. Красиво положить. Но что это изменит? Ты по сути на вопрос "чем плох реестр" отвечаешь, что "реестр — это некультурно"
А я хочу конкретики — описание конкретного способа работы с настройками в конкретном приложении. Почему так было сделано, какие получились преимущества, какие были бы грабли у реестра.
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, Воронков Василий, Вы писали: ВВ>>- Чем плохо использовать реестр в винде? ВВ>>- Тем, что в линуксе есть "культура" работы с текстовыми конфигами. MC>Да. Там не было реестра и культура сформировалась. А в винде был — и теперь ты текстовый конфиг представляешь себе не иначе как C:\GUID\GUID\GUID\GUID.cfg. Реестр тебя испортил.
Более того, скажу, что я очень редко использовал реестр для хранения настроек. Ибо уже много лет как в мозги долбится, что реестр — зло. Уже условный рефлекс сформировался как у собаки Павлова:
Реестр — зло
Реестр — зло
Реестр — зло
И захотелось-таки немного поразмыслить — раз уж тут у нас "философия", — а в чем это зло заключается, какие есть проблемы, почему зло? Но вот пока у меня складывается ощущение, что никто больше на эту тему думать не хочет.
Здравствуйте, Воронков Василий, Вы писали: ВВ>Нужен ленивый конфиг — пишем свой велосипед, или один файл конфига превращается, скажем, в 20. ВВ>Где его хранить? Куда-нибудь в недра Documents and Settings? Isolated Storage, а потом три еще три гуида. Бац, а теперь мы не можем файл с длинным именем создать — длина пути ведь в винде ограничена.
У тебя реестр головного мозга — оттого и фантазия больная. Самый страшный путь, который я когда-либо видел — это /etc/hal/fdi/policy, где единственный непонятный для начинающего линуксоилда компонент пути — это "fdi".
ВВ>У программы автосохранение. Ну и автоматическое сохранение конфига при выходе. Выходим в момент автосохранения — бац, файл занят. Надо синхронизацию прикручивать. ВВ>Операция записи в конфиг не атомарно. Слетели при попытке перезаписать конфиг — слетят все настройки. (А с реестром в худшем случае потеряете только последние изменения)
В человекочитаемый конфиг сама программа обычно не пишет. Для остального можно юзать что душе угодно с транзакциями, блекджеком и шлюхами (sqlite, например), если это так надо. С системно-критичными конфигами в /etc — я хз как правильно поступать, помимо хранения их в сурс-контроле — это Cyberax лучше объяснит. А обычному юзеру с его каким-нить .emacs (ну как пример того, куда и сам емакс может писать) эти транзакции на фиг не упали. Кстати, а в виндовом реестре — и правда транзакции с acid?
ВВ>Есть настройки для копирования, есть те, которые привязаны к конкретной машине (размер окна, его положение и пр.). Снова плодить дополнительные файлы? А когда у нас плагин для приложения будет свои system specific настройки сохранять — ширину панелек и проч. — куда кидать? В еще более отдельный файл?
Размер окна привязан к машине? Ширина панелек — это system-specific? OMFG.
А вообще — есть такая штука как иерархия конфигов. Юзерские — в /home, системные в /etc, примеры конфигов — например, в /usr/share. Недостаточно файла — создаешь папку, куда плагины будут класть свои файлы конфигов. Т.е. /etc/appname — либо файл конфига, либо папка с конфигами уровня системы. /home/.appname (тут пока с вариантами в виде /home/.local/appname, /home/.config/appname — но это не мешает) — файл или папка с конфигами уровня пользователя, обычно более приоритетными. Вопрос иерархии и приоритета и в реестре вроде не особо освещается.
ВВ>Что именно? Не затруднит напомнить?
Читаем ветку. Относимся к жизни проще.
Здравствуйте, Воронков Василий, Вы писали: ВВ>Меня испортил не реестр, а альтернативы, предлагаемые реестру той же Майкрософт. Например, Isolated Storage. Которые я пытался использовать.
Isolated Storage — это дотнетовское "а теперь положим файл хрен знает куда"?
ВВ>Да, файл можно красиво назвать. Красиво положить. Но что это изменит? Ты по сути на вопрос "чем плох реестр" отвечаешь, что "реестр — это некультурно"
Именно так.
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, Воронков Василий, Вы писали: ВВ>>Нужен ленивый конфиг — пишем свой велосипед, или один файл конфига превращается, скажем, в 20. ВВ>>Где его хранить? Куда-нибудь в недра Documents and Settings? Isolated Storage, а потом три еще три гуида. Бац, а теперь мы не можем файл с длинным именем создать — длина пути ведь в винде ограничена. MC>У тебя реестр головного мозга — оттого и фантазия больная. Самый страшный путь, который я когда-либо видел — это /etc/hal/fdi/policy, где единственный непонятный для начинающего линуксоилда компонент пути — это "fdi".
А у тебя просто незнание стандартных способов работы с конфигами под виндой. Оттого и реакция такая.
MC>В человекочитаемый конфиг сама программа обычно не пишет. Для остального можно юзать что душе угодно с транзакциями, блекджеком и шлюхами (sqlite, например), если это так надо.
Ну и? Вопрос остается. Чем плох реестр?
ВВ>>Есть настройки для копирования, есть те, которые привязаны к конкретной машине (размер окна, его положение и пр.). Снова плодить дополнительные файлы? А когда у нас плагин для приложения будет свои system specific настройки сохранять — ширину панелек и проч. — куда кидать? В еще более отдельный файл? MC>Размер окна привязан к машине? Ширина панелек — это system-specific? OMFG.
OMFG — это то, что произнесешь, когда приложение работавшее на HD мониторе, потом запустишь на 17-ке.
MC>А вообще — есть такая штука как иерархия конфигов. Юзерские — в /home, системные в /etc, примеры конфигов — например, в /usr/share. Недостаточно файла — создаешь папку, куда плагины будут класть свои файлы конфигов. Т.е. /etc/appname — либо файл конфига, либо папка с конфигами уровня системы. /home/.appname (тут пока с вариантами в виде /home/.local/appname, /home/.config/appname — но это не мешает) — файл или папка с конфигами уровня пользователя, обычно более приоритетными. Вопрос иерархии и приоритета и в реестре вроде не особо освещается.
Ты предлагаешь под виндой воссоздать юниксовую систему хранения конфигов? И полностью забить на все особенности и рекомандации ОС?
Здравствуйте, Воронков Василий, Вы писали: ВВ>А у тебя просто незнание стандартных способов работы с конфигами под виндой. Оттого и реакция такая.
И это тоже. Я десктопные приложения под винду не разрабатываю — пока всегда было достаточно app.config.
ВВ>Ну и? Вопрос остается. Чем плох реестр?
Тем, что он лишний.
ВВ>OMFG — это то, что произнесешь, когда приложение работавшее на HD мониторе, потом запустишь на 17-ке.
Именно. Поэтому эти настройки не могут быть чисто system-specific, т.к. в системе во время работы может меняться размер экрана (подключили, например, внешний к ноутбуку или перелогинились по rdp).
ВВ>Ты предлагаешь под виндой воссоздать юниксовую систему хранения конфигов? И полностью забить на все особенности и рекомандации ОС?
Нет, просто рассказываю, как сделано в другой ОС — без реестра.
Здравствуйте, Mr.Cat, Вы писали:
ВВ>>Ну и? Вопрос остается. Чем плох реестр? MC>Тем, что он лишний.
Лишний на винде? Ты в этом уверен?
ВВ>>OMFG — это то, что произнесешь, когда приложение работавшее на HD мониторе, потом запустишь на 17-ке. MC>Именно. Поэтому эти настройки не могут быть чисто system-specific, т.к. в системе во время работы может меняться размер экрана (подключили, например, внешний к ноутбуку или перелогинились по rdp).
И наверное такие настройки уж точно не стоит с одной машины на другую переносить, правда? А значит надо выделить как-нибудь.
ВВ>>Ты предлагаешь под виндой воссоздать юниксовую систему хранения конфигов? И полностью забить на все особенности и рекомандации ОС? MC>Нет, просто рассказываю, как сделано в другой ОС — без реестра.
Ну ты хотя бы сам-то понимаешь, что для меня никакой пользы от этого нет?