It seems to me that the API only supports the execution of the 'svn' command, as well as various parameters and switches. The problem is that the disruptive program uses another executable command to get the correct version number, which is "svnversion". Using this command, I can tell if I have a mixed version, a modified version, etc. For instance:
[ jim@localhost sb_rc1 993]$ svn info | grep Revision Revision: 51159 [ jim@localhost sb_rc1 994]$ svnversion 51159M [ jim@localhost sb_rc1 994]$
Guess what? "svn info" is lying to me here. My local copy was changed from the original 51159, so "svnversion" reports the version number with M. attached. What if I experiment with a branch containing a mixed version? "svnversion" can handle this. "svn info" cannot. Even worse, as shown above, this will lead to misleading and potentially harmful information if, for example, I base exemption from bad information.
source share