当用户尝试使用预提交挂钩提交到 repo 时,会收到此错误。预提交挂钩检查用户是否应该能够提交,以及提交消息的格式是否正确使用svnlook.exe
and --transaction
。日志显示以下内容:
[Mon Dec 05 08:35:06.073768 2016] [dav:error] [pid 4780:tid 816] [client xx.x.xxx.xxx:xxxxx]
Could not MERGE resource "/svn/SOME_REPO/!svn/txn/499-ei" into "/svn/SOME_REPO/trunk/ RESTRICTED/SomeFolder/AnotherFolder". [500, #0]
[Mon Dec 05 08:35:06.074768 2016] [dav:error] [pid 4780:tid 816] [client xx.x.xxx.xxx:xxxxx]
An error occurred while committing the transaction. [500, #720005]
[Mon Dec 05 08:35:06.074768 2016] [dav:error] [pid 4780:tid 816] [client xx.x.xxx.xxx:xxxxx] Can't set position pointer in file
'\\\\zzzvnxnas01.zzz.com\\zzz\\Projects\\ZZZZ1SVSUBVML1\\CSVN\\Repositories\\SOME_REPO\\db\\txn-protorevs\\499-ei.rev': Access is denied. [500, #720005]
我目前无法访问服务器,所以我需要从我拥有的点点滴滴中诊断它。Subversion 在 Apache 上运行 ~1.8 ~2.4 在 CollabNet SubversionEdge 上运行。
我的猜测是svnlook
导致服务没有足够的权限导致问题,因为当 pre-commit 钩子被删除时,用户没有报告任何错误。此外,该服务是否有可能超载?
我的理论的唯一问题是开发服务器上没有问题......:D
否则,我认为这可能与通常损坏的用户文件有关svn cleanup
,它们之间的交互不兼容的程序版本,防病毒软件,生产服务器上的用户负载或某些网络权限问题。
有人有这方面的经验吗?
谢谢。