今天想备份一个svn仓库。但是碰到“鬼”了。如下:
$ sudo -u daemon HOME=/tmp /usr/local/subversion/bin/svnsync sync file:///data/repos/xxoo
svnsync: Revprop change blocked by pre-revprop-change hook (exit code 255) with no output.
看上去是svn的pre-revprop-change hook出了问题。但是无论我怎么折腾pre-revprop-change hook代码都不给力。
又怀疑是环境变量, 连sudo的-E都使用上了还是一个屁用。
无奈下只能使用strace看看:
$ sudo -u daemon HOME=/tmp strace -f /usr/local/subversion/bin/svnsync sync file:///data/repos/xxoo 2>&1 |less
一定要使用-f, 因为svnsync产生了子进程, 这样可以连子进程都可以被trace。
看到一句相当可疑的trace条目:
[pid 6548] chdir(".") = -1 EACCES (Permission denied)
呃。。。。。细节。原来work directory是~, 切换成daemon运行的svnsync没有权限。。。。。
这样就没有问题了:
$ cd / && sudo -u daemon HOME=/tmp /usr/local/subversion/bin/svnsync sync file:///data/repos/xxoo
真是细节。
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.