开发者

svn commit fails svn: '/svn/!svn/bc/

开发者 https://www.devze.com 2023-02-07 12:47 出处:网络
After doing some refactoring, in Eclipse, Subversion starts to complain when commiting. I have no clue of how to fix it.I have managed to delete (and commited the deletion of GPFragmentRef.java.

After doing some refactoring, in Eclipse, Subversion starts to complain when commiting. I have no clue of how to fix it. I have managed to delete (and commited the deletion of 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/开发者_JAVA技巧dts/grammar/core/policy/GPFragmentRef.java' path not found

What does svn/!svn/bc mean?


It looks like svn is trying to commit changes to GPFragmentRef.java once again. Perhaps you could run an svn cleanup to see if that helps. Another possibility would be to attempt to revert changes to that file, by running svn revert on that file alone.


I'm sure you've moved on but I just got the same error using a command line subversion client and it turned out to be a capitalisation issue on my path. Pretty obvious but I thought I'd throw it out there to save somebody else some time.


The solution to the problem was to:

  • Checkout a new working copy.
  • Manually adding the changes to the new working copy from the broken one.


It's the internal set of URLs that Subversion uses to manage commit transactions, etc. This sounds like your server is no longer set up to host your repository on that URL.

You should check that mod_dav_svn is still set up and configured. Can you get a clean checkout, or run any operation that talks to the server op e.g. svn status -u?

Alternatively this may be a path filtering problem if your admin has attempted to filter your access to certain paths in the repository. You will always also need access to the /svn/!svn/ tree and probably also (thanks to an old bug) permissions to make an OPTIONS request to repository root, /svn.


It could happen if you manually copy a project to another repository locally and all the .svn directories are still there.

Use this on the copied dir to wipe the Subversion metadata:

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


I had this same problem (also caused by too many renames/refactors/moves/etc). I was able to resolve it by creating a patch, reverting all changes, then applying the patch. After that I could commit just fine.


This can sometimes happen when you perform a series of actions involving copying, modifying, and deleting one or more files. Subversion can lose track of them in the renaming/deleting process and commits will fail. Move aside the offending files or directory, re-check it out with an svn update, and copy the changed files into the new directory. You may lose tracking information about renamed/moved files, but you will be able to commit your changes.


This worked for me: Shelving my changes, updating, unshelving again and then committing.

0

精彩评论

暂无评论...
验证码 换一张
取 消