SVN Post-commit - рабочая копия заблокирована
Чтобы объяснить мою проблему и настройки сервера:
Мой репозиторий находится в / svn / repos / testrepo
Мой заказ, который также доступен через apache http, находится в / var / www / testsite
после совершения:
#!/bin/sh
/svn/autoupdate/autoupdate
autoupdate.c, скомпилированный с make autoupdate:
#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
execl("/usr/bin/svn", "svn", "update","/var/www/testsite/",(const char *) NULL);
return(EXIT_FAILURE);
}
При выполнении пост-коммита возникает эта ошибка:
Ошибка: ошибка после фиксации (код выхода 1) с выводом:
Ошибка: svn: E155004: запустите svn cleanup, чтобы удалить блокировки (для получения подробной информации введите svn help cleanup)
Ошибка: svn: E155004: рабочая копия '/var/www/testsite' заблокирована
Ошибка: svn: E200031: sqlite[S8]: попытка записи базы данных только для чтения
Ошибка: SVN: E200031: Дополнительные ошибки:
Ошибка: svn: E200031: sqlite[S8]: попытка записи базы данных только для чтения
Когда я захожу по ssh на тестовый сайт и делаю svn-обновление, все в порядке. Также очистка не показывает никаких ошибок.
Кто-нибудь знает в чем проблема?
1 ответ
- Это происходит потому, что в ОС на основе linux каталоги в / var / www / не имеют разрешения на запись по умолчанию.
- Дайте разрешение на запись в каталоги в / var / www / Пример: Если каталогом является xyz, который находится в /var/www/ (Структура каталогов - /var/www/xyz). Сначала измените каталог на /var/www/($ cd /var/www). Затем дайте разрешение на каталог xyz (sudo chmod -R 777 xyz/)
- Попробуйте обновить svn.