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

Re: [PATCH]: notification progress improvement/fixes (issue #901)

From: Peter N. Lundblad <peter_at_famlundblad.se>
Date: 2005-08-31 09:10:23 CEST

On Wed, 31 Aug 2005, David Anderson wrote:

> Branko Čibej wrote:
> > Don't even explain why. Just say, "Clients must use
> > svn_ra_create_callbacks() to allocate and initialize this structure."
>
> I was wondering about that, and decided to leave in minimal verbosity.
> But it's true that it makes sense in the current revving policy for
> structures, so no need to restate things.
>
Not all of our API users know our revving policy. I think it is a bit nice
to be a little verbose here and give the reason. But if you change it, it
should be changed everywhere.

> > Uh? Where does this dependency come from? I don't see either svnserve or
> > libsvn_ra_svn using this constructor anywhere.
>
> subversion/libsvn_ra_svn/client.c includes
> subversion/libsvn_ra/wrapper_template.h, which refers to the constructor
> in compat_open().
>
This leads to a circular dependency: libsvn_ra ->
libsvn_ra_{svn,local,dav} -> libsvn_ra. That doesn't work on all
platforms. So you can't use the constructor in wrapper_template.h. (The
whole reason for that file is to avoid circular dependencies; else
libsvn_ra could have provided wrappers for the RA implementations.)

I suggest just allocating the struct by hand in wrapper_template.h (with a
comment explaining why, of course). This is OK because you can't mix
different libsvn_ra and libsvn_ra_whatever versions.

Thanks,
//Peter

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Aug 31 09:11:29 2005

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.