Julian Foad wrote on Fri, Mar 22, 2013 at 15:48:56 +0000: > > > > -- > Certified & Supported Apache Subversion Downloads: > http://www.wandisco.com/subversion/download > > > > ----- Original Message ----- > > From: C. Michael Pilato <cmpil...@collab.net> > > To: Daniel Shahaf <d...@daniel.shahaf.name> > > Cc: dev@subversion.apache.org > > Sent: Friday, 22 March 2013, 11:25 > > Subject: Re: svnadmin --compatible-version=1.9.0 > > > > On 03/22/2013 11:13 AM, Daniel Shahaf wrote: > >> svnadmin.c has this code: > >> > >> /* We can't create repository with a version newer than what > >> the running version of Subversion supports. */ > >> if (! svn_version__at_least(&latest, > >> compatible_version->major, > >> compatible_version->minor, > >> compatible_version->patch)) > >> { > >> err = svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL, > >> _("Cannot guarantee > > compatibility " > >> "beyond the current running > > version " > >> "(%s)"), > >> SVN_VER_NUM ); > >> return EXIT_ERROR(err); > >> } > >> > >> Should the condition be relaxed to (compatible_version->major != > > latest->major)? > >> > >> After all, if someone passes "1.9.0", that's fine --- > > we'll just create > >> a 1.8.0-style repository, and our compatibility rules imply that 1.9.0 > >> will know to read it. Similarly, if someone passes "1.8.2", then > >> regardless of whether this svnadmin is 1.8.0 or 1.8.4, e can just go > >> ahead and create a 1.8-stlye repository; 1.8.2 will be able to read it. > >> > >> In other words, the "is my version number at least X" behaviour > > might be > >> useful, but --compatible-version= doesn't seem to be the right place > > for it. > > > > Makes sense to me. > > No, I think we should ignore the patch-level, but require that the running > version is no older than the requested minor version. > > If I'm runnning a 1.7 svnadmin and I request "--compatible-version=1.9.0", > then certainly 1.7 *can* create a repository that's compatible with v1.9, but > I think the meaning should be: create a repo using the 1.9 format, that is > compatible with 1.9 and *later*. > > It would be confusing if the admin tries to create a 1.9-format repo, but is > accidentally running the 1.7 svnadmin, and if the 1.7 svnadmin silently goes > ahead with creating a 1.7-format repo. >
I was assuming for this use-case you would run 'svnadmin --version --quiet' and then compare the result to "1.9.0". (We can introduce a subcommand for that: svnadmin version --is-at-least=1.9.0, which either prints "yes" and exits 0 or prints "no" and exits 1.) WDYT? > - Julian