svn commit失败svn:'/ svn /!svn / bc /

时间:2011-01-28 16:41:43

标签: svn

在做了一些重构之后,在Eclipse中,Subversion在提交时开始抱怨。我不知道如何解决它。我已设法删除(并提交删除GPFragmentRef.java

>niclas@nl:~/$svn commit -m "trying again"
Adding         core/doc/GDocSection.java
Adding         core/doc/GDocSectionID.java
Adding         core/doc/GDocSectionRef.java
svn: Commit failed (details follow):
svn: '/svn/!svn/bc/21791/DST/trunk/grammar-core/src/main/java/dts/grammar/core/policy/GPFragmentRef.java' path not found

svn/!svn/bc是什么意思?

8 个答案:

答案 0 :(得分:2)

看起来svn试图再次向GPFragmentRef.java提交更改。也许您可以运行svn cleanup来查看是否有帮助。另一种可能性是尝试通过单独在该文件上运行svn revert 来恢复对该文件的更改

答案 1 :(得分:2)

问题的解决方案是:

  • 查看新的工作副本。
  • 手动将更改添加到已损坏的新工作副本中。

答案 2 :(得分:2)

我确定你已经继续前进,但我使用命令行subversion客户端得到了同样的错误,结果证明这是我路径上的大写问题。很明显,但我想我会把它扔出去拯救别人一段时间。

答案 3 :(得分:1)

如果您手动将项目复制到本地的另一个存储库并且所有.svn目录仍然存在,则可能会发生这种情况。

在复制的目录上使用此功能擦除Subversion元数据:

find . -type f -name ".svn" -exec rm -i -f -r '{}' \;

答案 4 :(得分:1)

我有同样的问题(也是由太多重命名/重构/移动/等引起的)。我能够通过创建补丁,还原所有更改,然后应用补丁来解决它。在那之后,我可以做得很好。

答案 5 :(得分:0)

这是Subversion用于管理提交事务等的内部URL集。这听起来好像您的服务器不再设置为在该URL上托管您的存储库。

您应该检查mod_dav_svn是否仍然设置和配置。你可以得到一个干净的结账,或运行任何与服务器对话的操作,例如svn status -u

如果您的管理员试图过滤您对存储库中某些路径的访问权限,则可能是路径过滤问题。您将始终还需要访问/ svn /!svn / tree,并且还可能(由于旧的bug)权限向存储库root / svn发出OPTIONS请求。

答案 6 :(得分:0)

当您执行一系列涉及复制,修改和删除一个或多个文件的操作时,有时会发生这种情况。 Subversion可能会在重命名/删除过程中失去对它们的跟踪,并且提交将失败。将有问题的文件或目录移开,使用svn更新重新检查它,并将更改的文件复制到新目录中。您可能会丢失有关重命名/移动文件的跟踪信息,但您可以提交更改。

答案 7 :(得分:0)

这对我有用: 搁置我的更改,更新,再次取消搁置,然后提交。