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 <cmpilato_at_collab.net>
> > To: Daniel Shahaf <d.s_at_daniel.shahaf.name>
> > Cc: dev_at_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
Received on 2013-03-22 16:52:17 CET