Быстрый и грязный метод, который я использовал в большинстве компаний, в которых я работаю, был примерно таким:
- Поместите весь код в систему управления версиями (например, SVN или что-то в этом роде), чтобы все разработчики имели единый источник файлов. Вы, очевидно, уже делаете это. Ура!
- Поместите в корень этого кода файл с именем
setup_permissions.sh
, который обновляет все содержимое локальной среды. Это может включать разрешения или все, что вам нужно для запуска.
- Каждое утро все программисты делают
svn update
, который обновляет файлы, а также setup_permissions.sh
.
- Они пытаются запустить свой код. Вижу проблему. Они бегут
setup_permissions.sh
.
- В мире все хорошо!
Что касается содержимого setup_permissions.sh
, это может быть что-то вроде:
#/bin/sh
TMP=/tmp
mkdir $TMP/api
mkdir $TMP/email2sms
mkdir $TMP/scheduled_sending
mkdir $TMP/billing
chmod 777 -r $TMP/api $TMP/email2sms $TMP/scheduled_sending $TMP/billing
И добавьте больше команд, которые вам нужны.
(О, и не используйте chmod 777
... это ужасная идея. Просто посмотрите на это в качестве примера.)
Ключом к этому подходу является дисциплина . Вы должны доверять своим программистам иметь дисциплину для запуска setup_permissions.sh
, когда они обновляют свою локальную среду. То же самое касается тех, кто обновляет производственную систему.
У вас также должна быть дисциплина, чтобы обновлять setup_permissions
всеми изменениями, которые вы вносите в структуру каталогов, и любым изменением разрешений, в котором оно нуждается - вместо того, чтобы просто вносить изменения вручную на своем компьютере и оставлять все как есть. (И то же самое относится ко всем другим разработчикам, которые вносят изменения в структуру каталогов.)