I just completed my worst merge yet, or so I thought. We use SVN 1.4 (I know, we should upgrade). The branch has been synched multiple times with trunk so I used this approach:

Merge a range of revisions, not including the merge from trunk.
No commit
Merge another range of revisions skipping the revision containing the merge from trunk.
No commit
Merged the final range of revisions skipping the second merge from trunk
Build OK, Tests OK, Commit

Then other people started checking out trunk and for them it didn't work. The best way I can describe it is by showing you what happens when I run some CLI commands:

### At the working copy of trunk that I used for the merge
svn up
At revision 60684.

svn st
--- nothing

find . -name ShouldBeDeleted*
./path/to/src/.svn/text-base/ShouldBeDeleted.java.svn-base


### At a fresh checkout of trunk

svn up
At revision 60684.

svn st
--- nothing

find . -name ShouldBeDeleted*
./path/to/src/.svn/text-base/ShouldBeDeleted.java.svn-base
./path/to/src/ShouldBeDeleted.java <-------- this file should not be there!

I'm expecting one of two things. Either "svn st" should show a deletion of ShouldBeDeleted.java on commit in the trunk that works. Or ShouldBeDeleted.java should be deleted in the fresh checkout of trunk.

Please help :)