Capistrano: контроль версий файлов в shared / - PullRequest
0 голосов
/ 02 февраля 2011

Когда Capistrano развертывает приложение Rails, оно создает каталог shared/ для хранения файлов, которые должны использоваться в разных выпусках и не реэкспортироваться каждый раз. В моем приложении у меня есть несколько вещей в каталоге shared/, которые редко меняются (поэтому они принадлежат скорее, чем в дереве приложения), но я все же хотел бы, чтобы они контролировались версией в те времена, когда они делают изменить.

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

Ответы [ 2 ]

3 голосов
/ 02 февраля 2011

Каталог / shared предназначен для не версионных данных.Например, вы можете хранить связанные драгоценные камни, чтобы вам не приходилось переустанавливать все свои драгоценные камни в каждом выпуске.Вы также можете хранить там свои журналы, чтобы они не перезаписывались при каждом развертывании.Там вы можете хранить pid-файлы, чтобы не потерять идентификаторы критических процессов во время развертывания.Вы можете даже хранить сгенерированные пользователем или частично обработанные данные там, чтобы они не удалялись во время выпуска.Если файл предназначен для версионирования и может измениться, я бы порекомендовал сохранить его вместе с остальными вашими файлами и вне общего каталога.предварительно заполнить данные в вашем общем каталоге, например, файлы конфигурации базы данных.Эти сценарии будут запускаться при каждом развертывании и могут быть полностью настроены.Например, ваш скрипт конфигурации базы данных может записать файл конфигурации, только если он еще не существует.

0 голосов
/ 22 ноября 2013

Другое распространенное использование общего каталога - для файлов конфигурации. Управление версиями и исходным кодом для файлов конфигурации является очень хорошей идеей, но должно управляться с помощью инструмента управления конфигурацией системы. В моей среде я управляю выпусками кода с помощью Capistrano и настройкой системы с помощью Puppet. Таким образом, исходный контроль над файлами конфигурации все еще сохраняется, но они отличаются от процесса развертывания кода. В свою очередь, процесс развертывания кода не зависит от конфигурации системы.

...