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

Re: CVS update: ADDED: subversion/include svn_config.h

From: Branko Čibej <brane_at_xbc.nu>
Date: 2001-08-10 20:20:27 CEST

Greg Stein wrote:

>On Thu, Aug 09, 2001 at 11:42:16PM -0000, brane@tigris.org wrote:
>
>>...
>> - Option values may be expanded within a value by enclosing the
>> option name in parentheses, preceded by a percent sign:
>>
>> %(name)
>>
>> The expansion is performed recursively and on demand, during
>> svn_option_get. The name is first searched for in the same section,
>> then in the special [DEFAULTS] section. If the name is not found,
>> the whole %(name) placeholder is left unchanged.
>>
>> Any modifications to the configuration data invalidate all
>> previously expanded values, so that the next svn_option_get
>> will take the modifications into account.
>>...
>>
>
>Is this feature truly needed? I've never seen/used it in all the time that
>I've used ConfigParser (which was even before it was part of the Python
>distro...).
>
I found this feature immensely useful for programs that look for
components places relative to the installation directory. Many Unix
packages today expect to be installed in a specific directory (/opt/foo,
/usr/local, ...), and can't be relocated. That's often a pain. (Yes,
--rpath is evil.)

>It is a rather complex feature, and I would think for marginal benefit. I'd
>recommend dropping it unless we have a firm requirement for it. Any
>examples?
>
Well, let's take the problem that popped up recently -- finding the RA
libraries. With variable expansion, you could set up your /etc/svn.conf
like this:

    [DEFAULTS]
    # Installation prefix, set up by "make install" or other scrip
    prefix: /opt/subversion

    # File name extension of shared libraries, guessed by configure
    # (this one is for HP-UX)
    .so: .sl

    # Paths to installed Repository Access libraries
    [ra_libs]
    ra_local: %(prefix)/lib/libsvn_ra_local%(.so)
    ra_dav: %(prefix)/lib/libsvn_ra_dav%(.so)

    # Paths to uninstalled RA libraries, for testing
    [ra_libs.test]
    ra_local: %(exepath)/../../libsvn_ra_local/.libs/libsvn_ra_local%(.so)
    ra_dav: %(exepath)/../../libsvn_ra_dav/.libs/libsvn_ra_dav%(so)

Then, in svn, you set up the variables:

    /* Absolute path to svn */
    svn_config_set (cfg, "DEFAULTS", "exepath", dirname(fullpath(argv[0])));

and have the RA loader look at [ra_libs.test] or [ra_libs] to find the
correct paths.

Granted, this may not seem very useful for svn right now, but I think it
will become so, e.g., once we support client-side hooks. I'm also sort
of hoping that /all/ SVN clients will use the same configuration files,
as far as humanly possible.

    Brane

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:36:35 2006

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.