You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Daniel Shahaf <d....@daniel.shahaf.name> on 2019/11/15 23:43:42 UTC

Re: svn commit: r1869870 - /subversion/trunk/INSTALL

hartmannathan@apache.org wrote on Fri, Nov 15, 2019 at 16:40:22 -0000:
> +++ subversion/trunk/INSTALL Fri Nov 15 16:40:22 2019
> @@ -344,17 +344,21 @@ I.    INTRODUCTION
> +      7.  Berkeley DB 4.X  (DEPRECATED and OPTIONAL)
⋮
> +      The BDB back end has been deprecated in favor of FSFS, which
> +      stores the repository in a flat filesystem.  You do not need 
> +      Berkeley DB if you will only use the FSFS repository filesystem,
> +      or if you are building a Subversion client that will only speak 
> +      to remote (networked) repositories.

Could "remote (networked) repositories" be misunderstood as referring to
NFS-mounted repositories?  Suggest to append "via the svn:// or http:// URI
schemes and their variants" (svn+ssh, svn+foo, https).

Re: svn commit: r1869870 - /subversion/trunk/INSTALL

Posted by Nathan Hartman <ha...@gmail.com>.
On Tue, Nov 19, 2019 at 11:56 AM Daniel Shahaf <d....@daniel.shahaf.name>
wrote:

> Nathan Hartman wrote on Mon, 18 Nov 2019 15:30 +00:00:
> > [[[
> >
> > You need the Berkeley DB libraries only if you are building a
> > Subversion server that supports the older BDB repository storage back-
> > end, or a Subversion client that can access local BDB repositories via
> > the file:// URI scheme.
> >
> > The BDB back-end has been deprecated and is not recommended for new
> > repositories. BDB may be removed in Subversion 2.0. We recommend the
> > newer FSFS back-end for all new repositories. FSFS does not require
> > the Berkeley DB libraries.
> >
> > If in doubt, the 'svnadmin info' command, added in Subversion 1.9, can
> > identify whether an existing repository uses BDB or FSFS.
> >
> > ]]]
> >
> > Does that seem reasonable and solve the issues we had previously?
>
> +1, thanks.
>

Done in r1870059.

Cheers,
Nathan

Re: svn commit: r1869870 - /subversion/trunk/INSTALL

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Nathan Hartman wrote on Mon, 18 Nov 2019 15:30 +00:00:
> [[[
> 
> You need the Berkeley DB libraries only if you are building a
> Subversion server that supports the older BDB repository storage back-
> end, or a Subversion client that can access local BDB repositories via
> the file:// URI scheme.
> 
> The BDB back-end has been deprecated and is not recommended for new
> repositories. BDB may be removed in Subversion 2.0. We recommend the
> newer FSFS back-end for all new repositories. FSFS does not require
> the Berkeley DB libraries.
> 
> If in doubt, the 'svnadmin info' command, added in Subversion 1.9, can
> identify whether an existing repository uses BDB or FSFS.
> 
> ]]]
> 
> Does that seem reasonable and solve the issues we had previously?

+1, thanks.

Re: svn commit: r1869870 - /subversion/trunk/INSTALL

Posted by Nathan Hartman <ha...@gmail.com>.
On Sun, Nov 17, 2019 at 8:27 AM Daniel Shahaf <d....@daniel.shahaf.name>
wrote:

> Disclaimer: Most of the below is just my own opinion.  There's plenty of
> latitude in this.
>
> Nathan Hartman wrote on Sun, Nov 17, 2019 at 00:02:34 -0500:
> > You need Berkeley DB only if you are building support for
> > Subversion's older BDB repository storage back-end.  The BDB
> > back-end is deprecated and not recommended, but is still
> > available.  The newer and recommended back-end, FSFS, does
> > not require Berkeley DB.
>
> How about changing "not recommended" to "not recommended for new
> repositories"?
> For example:
>

> "The BDB backend has been deprecated and may be removed in Subversion 2.0.
> We recommend to use the FSFS backend for all new repositories."
>
> Plus a reference to the book, if needed.
>
> > In particular, you need Berkeley DB if you are building:
> > * A Subversion server that supports BDB repositories.
> > * A Subversion client that can access BDB repositories via
> >   the file:// URI scheme.
>
> s/supports/serves/ ?
>
> I'm not sure, but perhaps change "if" to "if and only if" and remove the
> next
> set of bullets?
>
> Point out that 'svnadmin info' will say whether a repository is FSFS or
> BDB?
> (That subcommand was added in 1.9 so we can assume it here.)
>
> > You do not need Berkeley DB if you are building:
> > * A Subversion server without support for BDB repositories.
> > * A Subversion client that accesses Subversion repositories of
> >   any format (BDB or otherwise), when such access is provided
> >   by a Subversion server that supports that format.
> > ]]]
>

If I go back (mostly) to what was there before, eliminate the bullets,
incorporate some of your suggestions (including previous
suggestions)... I come up with something like this...

[[[

You need the Berkeley DB libraries only if you are building a
Subversion server that supports the older BDB repository storage back-
end, or a Subversion client that can access local BDB repositories via
the file:// URI scheme.

The BDB back-end has been deprecated and is not recommended for new
repositories.  BDB may be removed in Subversion 2.0.  We recommend the
newer FSFS back-end for all new repositories.  FSFS does not require
the Berkeley DB libraries.

If in doubt, the 'svnadmin info' command, added in Subversion 1.9, can
identify whether an existing repository uses BDB or FSFS.

]]]

Does that seem reasonable and solve the issues we had previously?

Thanks for your input,
Nathan

Re: svn commit: r1869870 - /subversion/trunk/INSTALL

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Disclaimer: Most of the below is just my own opinion.  There's plenty of
latitude in this.

Nathan Hartman wrote on Sun, Nov 17, 2019 at 00:02:34 -0500:
> You need Berkeley DB only if you are building support for
> Subversion's older BDB repository storage back-end.  The BDB
> back-end is deprecated and not recommended, but is still
> available.  The newer and recommended back-end, FSFS, does
> not require Berkeley DB.

How about changing "not recommended" to "not recommended for new repositories"?
For example:

"The BDB backend has been deprecated and may be removed in Subversion 2.0.
We recommend to use the FSFS backend for all new repositories."

Plus a reference to the book, if needed.

> In particular, you need Berkeley DB if you are building:
> * A Subversion server that supports BDB repositories.
> * A Subversion client that can access BDB repositories via
>   the file:// URI scheme.

s/supports/serves/ ?

I'm not sure, but perhaps change "if" to "if and only if" and remove the next
set of bullets?

Point out that 'svnadmin info' will say whether a repository is FSFS or BDB?
(That subcommand was added in 1.9 so we can assume it here.)

> You do not need Berkeley DB if you are building:
> * A Subversion server without support for BDB repositories.
> * A Subversion client that accesses Subversion repositories of
>   any format (BDB or otherwise), when such access is provided
>   by a Subversion server that supports that format.
> ]]]
> 
> Thoughts?
> 
> Nathan

Re: svn commit: r1869870 - /subversion/trunk/INSTALL

Posted by Nathan Hartman <ha...@gmail.com>.
On Fri, Nov 15, 2019 at 6:43 PM Daniel Shahaf <d....@daniel.shahaf.name>
wrote:

> hartmannathan@apache.org wrote on Fri, Nov 15, 2019 at 16:40:22 -0000:
> > +++ subversion/trunk/INSTALL Fri Nov 15 16:40:22 2019
> > @@ -344,17 +344,21 @@ I.    INTRODUCTION
> > +      7.  Berkeley DB 4.X  (DEPRECATED and OPTIONAL)
> ⋮
> > +      The BDB back end has been deprecated in favor of FSFS, which
> > +      stores the repository in a flat filesystem.  You do not need
> > +      Berkeley DB if you will only use the FSFS repository filesystem,
> > +      or if you are building a Subversion client that will only speak
> > +      to remote (networked) repositories.
>
> Could "remote (networked) repositories" be misunderstood as referring to
> NFS-mounted repositories?  Suggest to append "via the svn:// or http://
> URI
> schemes and their variants" (svn+ssh, svn+foo, https).
>

Thank you for pointing this out.

As I'm looking at the text, I see other potential ambiguities here.
Such as:
* If I build a client that *doesn't* *only* access remote
  repositories, do I need BDB?
* If I build a client that talks to a Subversion server that happens
  to be running on the same machine (not via network)...?!?!

You and I know that only the binaries that *directly* access a BDB
repo need to be built with BDB support, but this can turn into an
unnecessarily complicated explanation.

Also, some good information that is stated in the "Dependency
Overview" section is not re-stated here. I think it should be, because
this is the "Dependencies in Detail" section.

Perhaps we should continue the theme of spelling things out...

For reference, this is the text under discussion as it appears now:

[[[

Berkeley DB is needed to build a Subversion server that supports
the BDB repository filesystem, or to access a BDB repository on
local disk.

The BDB back end has been deprecated in favor of FSFS, which
stores the repository in a flat filesystem.  You do not need
Berkeley DB if you will only use the FSFS repository filesystem,
or if you are building a Subversion client that will only speak
to remote (networked) repositories.

]]]

And I propose to replace it with something like:

[[[

You need Berkeley DB only if you are building support for
Subversion's older BDB repository storage back-end.  The BDB
back-end is deprecated and not recommended, but is still
available.  The newer and recommended back-end, FSFS, does
not require Berkeley DB.

In particular, you need Berkeley DB if you are building:
* A Subversion server that supports BDB repositories.
* A Subversion client that can access BDB repositories via
  the file:// URI scheme.

You do not need Berkeley DB if you are building:
* A Subversion server without support for BDB repositories.
* A Subversion client that accesses Subversion repositories of
  any format (BDB or otherwise), when such access is provided
  by a Subversion server that supports that format.

]]]

Thoughts?

Nathan