[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svnadmin --compatible-version=1.9.0

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Fri, 22 Mar 2013 17:51:41 +0200

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

This is an archived mail posted to the Subversion Dev mailing list.