SVN Post-commit - 工作复制锁定

时间:2015-06-25 16:08:44

标签: svn post-commit locked svn-update

解释我的问题和服务器设置:

我的回购是在/ 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:运行&#39; svn cleanup&#39;删除锁(键入&#39; svn help cleanup&#39;了解详情)
错误:svn:E155004:工作副本&#39; / var / www / testsite&#39;锁定
错误:svn:E200031:sqlite [S8]:尝试编写只读数据库
错误:svn:E200031:其他错误:
错误:svn:E200031:sqlite [S8]:尝试编写只读数据库

当我通过ssh到testsite并进行svn更新时,一切都很好。清理也不会显示任何错误。

有人知道这是什么问题吗?

1 个答案:

答案 0 :(得分:1)

  • 这种情况正在发生,因为在基于linux的操作系统中,/ var / www /下的目录默认情况下具有写入权限。
  • 授予/ var / www /下目录的写权限 示例:如果目录是xyz,它位于/ var / www /(目录结构为/ var / www / xyz)下。首先将目录更改为/ var / www /($ cd / var / www)。然后授予xyz目录(sudo chmod -R 777 xyz /)
  • 的权限
  • 尝试更新svn。