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.
Другие вопросы по тегам