LINUX.ORG.RU

git - заморозка изменений в файле

 ,


0

2

Гугол не помогает. Вероятно я не знаю, как правильно от него потребовать то, что мне нужно.

Имеется git, в нём идёт разработка админки. Потом каждый клиент тянет эту админку к себе. Есть файл с конфигами, стандартный, в который клиент уже забивает свои логины, пароли, емейлы и прочее.

Как правильно сделать так, чтоб этот файл тянулся с репы, а дальнейшие изменения этого файла сохранялись только локально, чтоб при git push оно не улетело на всеобщее обозрение?

Пока нашёл только git update-index —assume-unchanged FILENAME, но не уверен, что это то, что мне нужно. Потому как если будет меняться конфиг - он перезапишет всё, что вносил клиент. Как грамотно разрулить такую ситуацию?

★★★★
Ответ на: комментарий от nullb0t

Я знаю про .gitignore.

Речь про то, чтоб сделать первоначальное получение файла params.php, а потом уже игнорировать любые прилетающие изменения в этом файле. Как это реализовать с минимальной вознёй?

Не будешь же каждый раз клиенту объяснять echo 'params.php' > config/.gitignore.

И потом. Я так и не понял - а что будет с файлом, который прилетел и отслеживался, а теперь я вдруг решил засунуть его в игнор?

ekzotech ★★★★
() автор топика
Последнее исправление: ekzotech (всего исправлений: 1)

В репозитории хранить filename.conf.sample, клиенты пусть копируют в filename.conf и изменяют. Грамотно иначе никак.

slovazap ★★★★★
()

Очевидно что юзеры должны хранить свой конфиг в другом файле.

Int0l ★★
()
Ответ на: комментарий от slovazap

Ну я такой вариант и предложил.

ekzotech ★★★★
() автор топика

Дефолтный конфиг в приложении, плюс отдельно загружать конфиг и замещать переменные
В nodejs я делал require default.json и require user.jsob, а потом obj.assign

mystery ★★
()

Храните в репе только шаблон конфига по VCS, рабочие конфиги вынести соответственно за пределы репы (это могут быть другие репы с регулируемым доступом, примерами, личные, каталоги priv/.gitignore ...) Игнорируемое тоже можно положить в отдельные репы ...

anonymous
()
Ответ на: комментарий от ekzotech

Не будешь же каждый раз клиенту объяснять echo 'params.php' > config/.gitignore

Добавь его в гитигнор, лежащий в репе

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

Изменения в файле будут игнорироваться гитом без явного указания

annulen ★★★★★
()
Ответ на: комментарий от slovazap

Или filename.conf + filename.conf.local. Первый в репозитории, второй нет.

beastie ★★★★★
()
Ответ на: комментарий от kvap

Клиент с гитом вообще не работает.

Но хотелось бы минимизировать всю эту тягомотину лишнюю.

Да и вопрос не столько в push, сколько в том, чтоб конфиг не перезаписывался, когда это не нужно.

ekzotech ★★★★
() автор топика

Этот файл хранится в репе с именем config.foo.example. На локальных системах он используется только как config.foo, который игнорится на уровне репы. foo заменить на расширение своего ЯП.

shell-script ★★★★★
()

Храни my_config.yml.example и пусть клиент делает копию. Ну или сам делай при запуске если нету.

Либо можно сделать чтобы клиентские конфиги мержились с дефолтными.

Заморозка - это ты что-то не то хочешь.

Vit ★★★★★
()
Ответ на: комментарий от Vit

Ну я уже осознал свою неправоту насчёт заморозки. А так - приняли вариант с params.php.example - так проще всего.

ekzotech ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.