tags:

views:

1795

answers:

3

I'm using Versions for SVN.

I attempt to commit and get this message:

Commit failed (details follow): '/Users/mike/Sites/mysite.com/astss-cvsdude/Trunk/cart/flashfile.swf' is scheduled for addition, but is missing

I suppose this is because I had added files to the repo, and then deleted them via the filesystem.

I'd like to have it simply make note of my change, and apply the change to the repo.

How can I get around this?

+1  A: 

Adding a file, and then deleting it is the kind of operation that's considered an error - and so SVN is telling you. You told it to expect some file data and then don't supply it when you commit, the red lights flash and the sirens go off!

The answer is to undo your add, alternatively commit the file and then use 'svn rm' to remove it from the filesystem and the repo.

gbjbaanb
+4  A: 

I'm not sure what you're trying to do: If you added the file via

svn add myfile

you only told svn to put this file into your repository when you do your next commit. There's no change to the repository before you type an

svn commit

If you delete the file before the commit, svn has it in its records (because you added it) but cannot send it to the repository because the file no longer exist.

So either you want to save the file in the repository and then delete it from your working copy: In this case try to get your file back (from the trash?), do the commit and delete the file afterwards via

svn delete myfile
svn commit

If you want to undo the add and just throw the file away, you can to an

svn revert myfile

which tells svn (in this case) to undo the add-Operation.

EDIT

Sorry, I wasn't aware that you're using the "Versions" GUI client for Max OSX. So either try a revert on the containing directory using the GUI or jump into the cold water and fire up your hidden Mac command shell :-) (it's called "Terminal" in the german OSX, no idea how to bring it up in the english version...)

MartinStettner
The problem here is that he uses a GUI. If he can use the command-line anyway, he could just `svn rm` the file even if it doesn't exist in the directory.
Pikrass
Ok, I wasn't aware of the "Versions" client for OSX. He should be able to use "revert" anyway, shouldn't he? That would work with TortoiseSVN on Windows.
MartinStettner
svn cleanups and svn rms later... Thanks for your help guys. Is there a way to tell svn, "look, I added some files via my OS's default file manager, and right now, the stuff in this folder, is what I want the current state of this repo to be... now let it happen... don't tell me what I can and can't do with these files, but yes, keep track of it all for me."?
Mike
An `svn add *` automatically adds all new, unversioned files, an `svn commit` immediately saves these changes to the repository. Afaik there is no aequivalent operation for removal, so if you remove files, you have to call `svn rm` manually.
MartinStettner
A: 

I had the same problem with Versions displaying the same message. I simply right clicked the offending files and selected 'Revert...' from the right-click menu and all was good.

Basically Versions (actually Subversion) thinks you still want to add the file, but it cannot find it because you deleted it in the file system. The Revert option tells Subversion to forget about adding it.

Neonplay