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

Re: [PATCH] show help even if some RA modules fail to load

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: 2005-10-25 19:09:57 CEST

Kalle Olavi Niemitalo wrote:
>
> kalle@Astalo:~$ svn --version
> svn: Version mismatch in 'svn_delta': found 1.4.0-dev, expected 1.2.0
> svn: Version mismatch in 'svn_subr': found 1.4.0-dev, expected 1.2.0
>
> I consider this too harsh: even if some RA modules are unusable,
> the client should still be able to keep running and use the
> others, as if the failing RA module had not existed at all.
> With the attached (rather old, but IIRC not posted before) patch,
> svn diff --help just works with no complaints, and svn --version
> outputs this:

I very much like the idea, but the situations in which it works seem to be
rather restricted. I haven't been able to make it work on my system by moving
libraries around in an ad-hoc manner.

For "svn --version", I believe that it will work in some situations.

For "svn help" or "svn diff --help", I don't see how your patch can affect the
behaviour at all, because you have only patched the svn_ra_print_modules()
function which isn't used by "help". Am I missing something?

> The following repository access (RA) modules are available:
>
> * ra_svn : Module for accessing a repository using the svn network protocol.
> - handles 'svn' scheme
> * ra_local : Module for accessing a repository on local disk.
> - handles 'file' scheme
>
> The following RA modules exist but cannot be used:
>
> * ra_dav
> - Version mismatch in 'svn_delta': found 1.4.0-dev, expected 1.2.0
> - Version mismatch in 'svn_subr': found 1.4.0-dev, expected 1.2.0

It appears to me that in this example the RA loader found an old (1.2.0)
version of libra_dav, tried to initialise it, and got told that ra_dav wasn't
happy with its dependencies. Can't we raise this checking up a level and make
the ra_loader say:

   Version mismatch in 'ra_dav': found 1.2.0, expected 1.4.0-dev

?

Here is my failed attempt to test this:

I am working with Subversion head (1.4.0-dev) running direclty from my build
tree, and the only installed version I have is v1.1.3 libraries installed in
/usr/lib/. (That is a required dependency of some packages in SuSE Linux 9.3.)

If I rename my "libsvn_ra_dav" build directory so that an older version is
found, it doesn't get as far as running your code:

~/src/subversion> svn --version
/home/julianfoad/build/subversion/subversion/clients/cmdline/.libs/lt-svn:
symbol lookup error:
/home/julianfoad/build/subversion/subversion/libsvn_ra/.libs/libsvn_ra-1.so.0:
undefined symbol: svn_ra_dav__init

That appears to be because old versions of our libraries didn't have "init"
functions. Is there anything we can do to work around that?

Please excuse me if my ignorance is making it seem more complex to me than it
should be.

- Julian

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Oct 25 19:56:14 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.