我有一个SVN存储库(托管在Dreamhost上),在二进制文件上设置了需求锁 . 有时会发生这样的情况:在提交由我锁定和修改的文件时,提交失败并显示错误:
Error: Commit failed (details follow):
Error: File '/my/file.bin' is locked in
Error: another working copy
如果我试图锁定该文件(不窃取它),它说:
Error: Path '/my/file.bin' is already locked by user
Error: 'my_username' in filesystem '/home/user1/svn/repo1/db'
清理无济于事,因此解决此问题的唯一方法是窃取锁定,然后提交成功 .
这不是一个关键问题,但它确实很烦人,特别是当它发生在长时间提交过程中 . 我倾向于认为这是由客户端或服务器的错误引起的,因为我确信我没有使用其他工作副本,并且问题经常发生(过去两天中有3次)给我和我的同事使用存储库 .
我们使用TortoiseSVN 1.8.4,而Dreamhost svn服务器是1.6.12 .
谢谢你的帮助 .
更新:我注意到如果我在提交之前更新了我的工作副本,则会发生错误(这不会产生任何错误,当然也不会修改锁定的文件) . 通过检查文件的状态,在更新龟之前说它被我锁定(仅在本地检查),而在本地更新检查后它给出了“????”作为锁定状态,并通过检查服务器然后说它被我锁定 . 更新后,文件变为只读(因为需要锁定),即使它仍被标记为已修改 . 所以动作的顺序是:lock file.bin - > modify file.bin - >更新整个工作副本 - > commit - > commit failed错误 . 更新后,工作副本似乎忘记了锁的状态,当它询问服务器时,它认为它被锁定在另一个工作副本上 .