当前位置:  开发笔记 > 运维 > 正文

无法提交Subversion

如何解决《无法提交Subversion》经验,为你挑选了4个好方法。

我有一个客户端必须重建他的自动构建服务器.他从我的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上的任何人都有解决方案吗?

更新:没有其他人提交到该存储库,因此它不是一个事务卡住(至少不是来自另一个用户).最后,我们发现权限设置不正确.不是你会从这条消息中知道它,但这解决了问题.



1> Captain Obvi..:

您可以在重启时清除此错误:

    识别(或创建)根SVN存储库中的目录,该目录不是失败提交的一部分.

    在步骤1的目录中创建一个新文件.

    提交新文件(如果在步骤1中创建,则提交目录).因为该文件是新的,所以它与先前的提交不冲突,并且可以更新服务器上的修订版#.

    提交原始文件/目录.

    删除新文件(如果在步骤1中创建,则删除目录).

    提交整个树.

**不需要步骤5和6,但我喜欢保持我的存储库整洁......

我很多时候得到这个错误.在提交我的大文件的过程中,SVN经常会出错,这反过来会导致后续的提交尝试写入被中断的修订版.


+1.这是一个很好的解决方案,因为我无法访问svnadmin.
我做到了,我现在可以承诺.但是,svnadmin lstxns仍会显示那些挂起的事务.这是个问题吗?

2> 小智..:

我有一个类似的问题,除了消息说"......之前的陈述目前正在由这个过程写".

svnadmin lstxns没有显示任何交易.

重启Apache解决了我的问题.



3> Jason Coco..:

您的存储库有一个卡住的事务.您可以使用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命令时不会损坏数据库.



4> Omar Kohl..:

对我来说,这个问题是通过改变我的本地文件夹的权限(而不是库)解决(如暗示在问题的更新).在Windows Vista中,您可以通过右键单击文件夹并在属性/安全性中更改权限.

该错误消息不是非常好,这是不容易找到答案,所以我希望我的回答可以帮助其他人来解决这个恼人的,但是,从另一方面简单的解决问题.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有