SVN Post-commit - 工作副本已锁定

SVN Post-commit - workingcopy locked

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

我的仓库在 /svn/repos/testrepo

我的结帐,也可以通过 apache http 访问 /var/www/testsite

post-提交:

#!/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);
}

在执行 post 提交时,出现此错误:

错误:post-提交挂钩失败(退出代码 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 更新时,一切正常。清理也没有显示任何错误。

有人知道问题出在哪里吗?

  • 发生这种情况是因为在 linux based os 中 /var/www/ 下的目录默认没有写入权限。
  • 授予对/var/www/下目录的写权限 示例:如果目录是 /var/www/ 下的 xyz(目录结构是 /var/www/xyz)。首先将目录更改为/var/www/($ cd /var/www)。然后给xyz目录权限(sudo chmod -R 777 xyz/)
  • 尝试更新svn。