На моем сервере установлены Subversion и Apache, и веб-каталог Apache также является рабочей копией Subversion. Причина этого в том, что простая команда svn update /server/staging
развернет последний источник на промежуточном сервере.
Общий веб-каталог Apache: /server/staging
- (Это рабочая копия SVN.)
У меня есть два пользователя на моем сервере, 'richard' и 'austin'. Они оба являются членами группы разработчиков. Я рекурсивно устанавливаю разрешения для каталога / server для richard: developers, используя "sudo chown -R richard: developers /server".
Затем я установил права на чтение, запись и выполнение как для «richard», так и для группы «developers».
Так что, конечно, теперь 'austin' сможет использовать команду svn update /server/staging
? Однако, когда он пытается, он получает ошибку:
svn: Can't open file '/server/staging/.svn/lock': Permission denied
Если я рекурсивно изменю владельца / server на austin: developers, он может выполнить команду просто отлично, но тогда 'richard' не сможет.
Как мне исправить проблему? Я хочу создать ловушку post-commit для автоматического развертывания промежуточного сайта при фиксации файлов, но я не вижу способа, чтобы это работало для обоих пользователей. Крюк будет:
/usr/bin/svn update /server/staging
Использование одной и той же учетной записи для них обоих не будет приемлемым решением, и я не знаю, как запустить команду в хуке от имени root.
Любая помощь приветствуется!