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

Reply via email to