svn Skipped ‘path/to/file’ is misleading

Following the instructions for “shelving” work in progress using Subversion, I tried to merge my work back onto the trunk, but kept getting the following “error” messages:

“Skipped ‘path/to/file/on/shelf/but/not/in/trunk'”

I read and re-read the Subversion documentation for merging and it made it sound like I was doing something wrong. I finally found a posting with instructions on how to merge in spite of the “Skipped” error message… so I tried it, and it worked (in spite of the misleading messages). The trick really is to ignore the messages.

Note that following the merge, files that are in the source branch and not in the destination branch need to be svn added before they will end up in the destination.

I sincerely hope this post helps others save the two or three hours I lost trying to figure out what I was doing wrong!

2 comments

  1. I just ran into this and after being unable to figure out what the hell it meant, went on a several minute swearing tirade.

    So your blog post helped me a great deal, thanks.

  2. Thank you for posting this. It definitely helped.

    I believe I figured out why this happens. I was merging from branch to trunk. I noticed some conflicts and realized I hadn’t done something in my branch that I wanted to before I merged. So I “svn revert” all the merge changes (so I did not commit/chick in the merge). Then I made the change I needed in my branch.

    I merged from branch to trunk again and this time I got that “skipped” error on a file (file1.cs). When I found your post here I realized what happened.

    When I reverted the files instead of merging, it reverted all the files that existed in the trunk already, but it did not revert/remove the new file that came from the branch (file1.cs). So svn was seeing that file there but wasn’t sure what it was. So I had to browse to the file, right-click, and “svn add” the file manually.

    So svn “skipped” the file because it was already in the trunk folder, but it wasn’t a conflict/merge because it wasn’t an svn file yet (it had never been checked in to the trunk).

    I hope that made sense, and I hope that helps clarify a little more what the “skipped” error means.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.