60
votes

The Subversion manual states:

'!'

Item is missing (e.g. you moved or deleted it without using svn). This also indicates that a directory is incomplete (a checkout or update was interrupted).

But as so often with Subversion, there is no indication on how to fix the problem.

Normally, I would use my trusted Fix_Subversion.command but this time it is trunk and it will take forever.

So is there any faster option?

6
did you move or delete the item(s) in question? - Sam Miller
@Martin: thanks for your script, it saved my day! - Hraban

6 Answers

69
votes
svn revert /path/to/file
svn rm /path/to/file      # if you want to delete it from svn itself

Golden rule is: once something is under svn-control, any moving, deleting, renaming, should be done with svn commands (svn mv, svn rm, etc.), not using normal filesystem/file-explorer functions.

22
votes

What happens after you run:

svn cleanup .
svn update
svn status
3
votes

I tried to revert & cleanup but it did not fix my issue. The solution I found is a bit harsh but worked:

  1. rename the old_folder to new_folder.
  2. from the parent issue a svn up old_folder
  3. copy back the files from the new_folder [avoiding coping the .svn folder from the new_folder].

the I deleted the new_folder and in this way I managed to have a cleaned old_folder.

1
votes

What exactly did you do to the branch before you received this error?

If you're having regular problems with SVN, you're probably doing something wrong (e.g. using mv/rm as opposed to svn mv/svn rm on the branch).

1
votes

If you deleted a file and it's marked with !, just run svn rm --force <filename> to tell SVN to delete the file from the repository also.

1
votes

In my case I have committed with a message the parent folder that has the red flag, and then all the nested folders that had the icon including the parent folder are cleared.