Хостинг-специфичный код в проектах: тоже подтолкнуть к Github? - PullRequest
0 голосов
/ 20 декабря 2010

Представьте себе этот общий сценарий: я собрал крутой проект, которым хочу поделиться со всем миром.Итак: я разместил его на Github и забрал его у себя на сайте, чтобы люди могли увидеть демо.Это также упрощает обновление: просто нажмите из моего локального ящика на Github, загрузите на моем сервере.

Я бы хотел отслеживать посетителей, поэтому я добавляю Google Analytics и, возможно, некоторые другие специфичные для сайта материалы (например, глобальныезаголовок для всех страниц моего сайта) к проекту.Однако, все, кто проверяет мой проект на Github, тоже получают все это.

Есть несколько решений, чтобы предотвратить это.Я мог бы создать определенную «ветку развертывания» для моего сайта, но это громоздко.Я мог бы сделать какое-то переключение в моем коде (if ip === myip showStats()), но это ужасно.

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

Есть другие предложения?Неужели люди вообще беспокоятся, когда получают такой код для развертывания, как этот, в своих проверках?

Ответы [ 3 ]

2 голосов
/ 20 декабря 2010

По аналогии с предложением Бреуна (так что на ваш вопрос ответят дважды), я развернул мои проекты Python с файлом settings.py, который определяет настройки, необходимые для рабочей машины. (debug = False, правильные настройки базы данных и пути к файлам ...)

В конце файла я пытаюсь импортировать developmentsettings.py так:

try:
    from projectnaam import developmentsettings
except:
    pass

Файл не существует в системе управления версиями, поэтому он не будет выполнен и будет тихо передан на сервер. На моем компьютере разработчика я вручную создаю файл и перезаписываю определенные настройки, чтобы соответствовать моим потребностям разработчика. (такие вещи, как sqlite вместо postgres)

Это может быть расширено до более сложной стратегии развертывания, включающей такие вещи, как Fabric, Buildout, Capistrano и Chef. Все это становится более важным при работе в (распределенных) командах.

Мой текущий процесс разработки теперь выглядит следующим образом: редактировать код, $ git commit -m "comment", $ git push, $ fab deploy master production (<- это вытягивает 'master' из источника на сервер) </em>

1 голос
/ 20 декабря 2010

Создайте файл конфигурации для настроек, специфичных для развертывания. Например, вы можете создать файл conf / defaults.conf для любых параметров по умолчанию и позволить пользователям помещать любые локальные переопределения, относящиеся к развертыванию, в файл conf / local.conf.

0 голосов
/ 21 декабря 2010

И добавьте ваш файл settings.php в .gitignore, в противном случае вы можете загрузить его.

Публикация кода Google Analytics (api) в мире не очень хорошая идея, поскольку ваша статистикаоблажаться, если кто-то использует ваш код, не меняя его.

...