Bert Huijben wrote:
> From: Greg Stein:
> > On Wed, Sep 1, 2010 at 13:44,  <julianf...@apache.org> wrote:
> > > +#if 0  /* not required with SINGLE_DB */
> > 
> > Shouldn't this be #ifdef SVN_WC__SINGLE_DB ?  I thought the idea was
> > to keep using that define for a while so that developers can compile
> > multi-db for testing purposes.
> > 
> > Now... I recognize that symbol is not available to libsvn_client which
> > then means that multi-db isn't possible any more? Maybe a more

OK, first things first.  To improve this, I added a duplicate #define of
SVN_WC__SINGLE_DB in svn_wc_private.h so it can be used here and in the
client code.  A multi-DB build now requires commenting out that define
in only those two places rather than changing the "#if 0" in multiple
places.

r991887.  A bit ugly but one step better.

I considered moving the #define to some single place from where it would
be available everywhere - either in "include/svn_wc.h" or in the
configuration script (controlled by "configure --disable-single-db") -
but neither seems worth the effort.

> > appropriate approach would be to just leave the functions as stubs?
> > And then some ### markers to fully remove them when we strip out all
> > the multi-db code? (in a couple weeks?)

Not really, as I want the whole block of client code that uses these
functions to be disabled rather than just the functionality of the
functions themselves.

> Julian:
> Any constructs like this break the shared library build on Windows.

Oops.

> We have a python script somewhere in the tree (extractor.py if I remember
> correctly) that scans all the header files defined in build.conf to generate
> .def files for the Windows DLLs. And these functions will be made public for
> library users. 
> 
> But in this case the scripts finds functions that aren't defined, but makes
> them part of the public interface anyway. (Resulting in a linker error)
> 
> For a few specific cases (like mac only function) we applied some exceptions
> to the extractor, but in this case I think we should just start removing
> multi-db support.

I suppose deleting or commenting out just the function prototypes from
the header file is a possible intermediate solution.  Do you think so?

- Julian


Reply via email to