A question on removing a private API. In v1.6.5 (r878898) we added the API "svn_opt__eat_peg_revisions()" and called it from the command-line client. This means 1.6.(>=5) 'svn' is not compatible with 1.6.(<5) libraries.
What we should have done is to make it a private function within the client code, not in the libraries. But that's history and we can live with it. In r953428 on trunk I have moved the function out of the libraries into the client code.[*] (We are allowed to introduce new library functions on trunk, of course, but we don't want to keep this particular function in the API long term.) A consequence is that we will not be able to run svn 1.6.(>=5) executables against 1.7.x libraries. It would be useful to do so for testing, of course. The questions are: How well can we test 1.6.x (or older) 'svn' against newer libraries anyway? Are there other private-API changes that make it impossible without special compatibility code insertions? Has anyone tried? Do we want to put this private API back into the 1.7 libraries for compatibility testing purposes or for any other reason? ([*] Note: Also in the same commit I removed the public name svn_opt_eat_peg_revisions() but that is not a concern because it has not been published in any way.) - Julian On Fri, 2010-06-11, Philip Martin wrote: > [email protected] writes: > > > Author: julianfoad > > Date: Thu Jun 10 19:49:22 2010 > > New Revision: 953428 > > > * subversion/libsvn_subr/opt.c > > (svn_opt__eat_peg_revisions): Remove this wrapper, as compatibility for > > 1.6 for svn executable is not required. > > Why is this not required? > > We abused the API guidelines by adding this to the 1.6 branch (it > should have been added to the command line client code). We can work > around that by keeping the symbol available. > > Keeping it also helps with backward compatibility testing. We have > vastly more backward compatibility code in 1.7 compared to earlier > releases. Being able to run the 1.6 client with 1.7 libraries seems > like a good idea to me. How much do you think works at present? >

