In Subversion 1.7 we added an --ignore-ancestry flag to switch, but even without that flag we don't use the ancestry to properly identify tree conflicts caused by switching. To do that we must ask the repos layer (via the ra layer) to notice ancestry.
This patch updates all ra layers to allow noticing ancestry during switching.
For ra_local and ra_serf this works for all existing server versions, but for ra_svn this requires a new svnserve. (Our dav protocol already supported ignore_ancestry and send copyfrom args as separate flags)
If necessary we could rev the client switch api to use separate ignore and notice ancestry flags, but I don't think this is necessary in this case.
This patch also resolves an Subversion 1.5 'sussman TODO', by also adding a send_copyfrom_args option.
* subversion/include/svn_ra.h (svn_ra_do_switch3): New function, adding two booleans and using dual pools. (svn_ra_do_switch2): Deprecate function.