Dan, This isn't that much help but are you aware that svn export is exactly the same as svn checkout & run a script to delete all the .svn folders ...? The problem with stripping .svn from vendor checkout is then you cannot update it; you're forced to export the whole tree every time.
The method of having a working copy somewhere pointing to the vendor files, that you can svn update whenever you like, and then diff the changes into your tree is the easiest way to accomplish what you want, I think. What I would recommend is that you have two branches for this (plus trunk of your code): [your stuff] => trunk-working-copy [their stuff] => from-vendor-svn [intermediate] = svn copy [your stuff -r HEAD] Then at any time you can: svn up [their stuff] svn copy [your stuff] => [intermediate] (so you can do your diff/merge to an intermediate branch) test on [intermediate] if it passes merge it to trunk, delete [intermediate] Bear in mind, not sure what OS you're on, but e.g. on Windows using Araxis merge, merging two or three trees is far (several orders of magnitude) simpler than using svn diff. HTH, Geoff