我有一个客户端必须重建他的自动构建服务器.他从我的subversion服务器检出了他的项目文件夹,但现在不再能够提交了 - 他收到了这个错误:
Error: Commit failed (details follow): Error: Cannot write to the prototype revision file of transaction '551-1' because a Error: previous representation is currently being written by another process Finished!:
我搜索过谷歌但是虽然经常报告这个错误但没有明确的解释 - StackOverflow上的任何人都有解决方案吗?
更新:没有其他人提交到该存储库,因此它不是一个事务卡住(至少不是来自另一个用户).最后,我们发现权限设置不正确.不是你会从这条消息中知道它,但这解决了问题.
您可以在重启时清除此错误:
识别(或创建)根SVN存储库中的目录,该目录不是失败提交的一部分.
在步骤1的目录中创建一个新文件.
提交新文件(如果在步骤1中创建,则提交目录).因为该文件是新的,所以它与先前的提交不冲突,并且可以更新服务器上的修订版#.
提交原始文件/目录.
删除新文件(如果在步骤1中创建,则删除目录).
提交整个树.
**不需要步骤5和6,但我喜欢保持我的存储库整洁......
我很多时候得到这个错误.在提交我的大文件的过程中,SVN经常会出错,这反过来会导致后续的提交尝试写入被中断的修订版.
我有一个类似的问题,除了消息说"......之前的陈述目前正在由这个过程写".
svnadmin lstxns没有显示任何交易.
重启Apache解决了我的问题.
您的存储库有一个卡住的事务.您可以使用svnadmin命令来修复它.与所有其他svn实用程序一样,svnadmin接受命令后跟选项(通常只是存储库目录).必须在具有存储库的服务器上运行svnadmin.
做这样的事情:
svnadmin lstxns /path/to/repository
获取正在进行的交易清单(你应该看到你的违规551-1).然后,您可以决定如何最好地从此错误中恢复... svnadmin还有一个命令rmtxns来删除违规事务.有关更多信息,请发布:
svnadmin help
或者访问底格里斯河网站:http://subversion.tigris.org/.您还可以通过help命令以及您感兴趣的命令名称获得有关特定命令的更详细帮助.例如:
svnadmin help lstxns
显然,您将需要shell访问存储库服务器并在存储库上写入权限以使用svnadmin.如果您的存储库格式是Berkely DB,则应该暂停svnserve守护程序(如果使用它)和任何web_dav/web_svn访问权限,以确保在发出svnadmin命令时不会损坏数据库.
对我来说,这个问题是通过改变我的本地文件夹的权限(而不是库)解决(如暗示在问题的更新).在Windows Vista中,您可以通过右键单击文件夹并在属性/安全性中更改权限.
该错误消息不是非常好,这是不容易找到答案,所以我希望我的回答可以帮助其他人来解决这个恼人的,但是,从另一方面简单的解决问题.