You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Ben Collins-Sussman <su...@collab.net> on 2005/03/23 16:46:08 UTC

showing fs modules in --version ?

Someone brought up the idea of --version showing fs-backends the same 
way we show available RA layers.  It seems like a good idea to me.

For example, what if ra_local had more sub-items:

$ svn --version
svn, version 1.2.0 (dev build)
    compiled Mar 23 2005, 09:58:58

Copyright (C) 2000-2004 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet 
(http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_dav : Module for accessing a repository via WebDAV (DeltaV) 
protocol.
   - handles 'http' schema
   - handles 'https' schema
* ra_svn : Module for accessing a repository using the svn network 
protocol.
   - handles 'svn' schema
* ra_local : Module for accessing a repository on local disk.
   - handles 'file' schema
        - fs_base:  can access BerkeleyDB repositories
        - fs_fs:    can access FSFS repositories


And similarly, svnadmin (and svnlook) --version could show something 
similar:

$ svnadmin --version
svnadmin, version 1.2.0 (dev build)
    compiled Mar 23 2005, 09:58:58

Copyright (C) 2000-2004 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet 
(http://www.Collab.Net/).

The following filesystem back-end implementations are available:

* fs_base:  can access BerkeleyDB repositories
* fs_fs:    can access FSFS repositories



Might this be a nice thing to add?



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: showing fs modules in --version ?

Posted by John Peacock <jp...@rowman.com>.
Ben Collins-Sussman wrote:
> cmpilato was only -0, and clean code factorization sounds good to me.
> 

How does this look:

> $ subversion/clients/cmdline/svn --version
> svn, version 1.2.0 (dev build)
>    compiled Mar 23 2005, 16:30:12
> 
> Copyright (C) 2000-2004 CollabNet.
> Subversion is open source software, see http://subversion.tigris.org/
> This product includes software developed by CollabNet (http://www.Collab.Net/).
> 
> The following filesystem back-end (FS) implementations are available:
> 
> * fs_base : can access BerkeleyDB repositories
> * fs_fs : can access FSFS (filesystem) repositories
> 
> The following repository access (RA) modules are available:
> 
> * ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol.
>   - handles 'http' schema
> * ra_svn : Module for accessing a repository using the svn network protocol.
>   - handles 'svn' schema
> * ra_local : Module for accessing a repository on local disk.
>   - handles 'file' schema

and

> $ subversion/svnadmin/svnadmin --version
> svnadmin, version 1.2.0 (dev build)
>    compiled Mar 23 2005, 16:30:12
> 
> Copyright (C) 2000-2004 CollabNet.
> Subversion is open source software, see http://subversion.tigris.org/
> This product includes software developed by CollabNet (http://www.Collab.Net/).
> 
> The following filesystem back-end (FS) implementations are available:
> 
> * fs_base : can access BerkeleyDB repositories
> * fs_fs : can access FSFS (filesystem) repositories
> 

The only problem I'm having is I cannot figure out how libtool is 
choosing which libraries to include when linking the test files, so I am 
getting errors like this:

> cd subversion/tests/libsvn_subr && /bin/sh /home/jpeacock/devel/subversion-trunk/libtool --tag=CC --silent --mode=link gcc  -g -g -pthread -DNEON_ZLIB -DSVN_DEBUG -DAP_DEBUG -Wpointer-arith -Wwrite-strings -Wshadow   -L/usr/local/BerkeleyDB.4.2/lib  -rpath /usr/local/lib -o opt-test  opt-test.o ../../../subversion/tests/libsvn_test-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la /usr/local/apache2/lib/libapr-0.la -lrt -lm -lcrypt -lnsl  -lpthread -ldl
> /home/jpeacock/devel/subversion-trunk/subversion/libsvn_subr/.libs/libsvn_subr-1.so: undefined reference to `svn_fs_print_fs_modules'
> collect2: ld returned 1 exit status
> make: *** [subversion/tests/libsvn_subr/opt-test] Error 1

which links just fine if I manually add:

	../../../subversion/libsvn_fs/libsvn_fs-1.la

to the libtool line.

John

-- 
John Peacock
Director of Information Research and Technology
Rowman & Littlefield Publishing Group
4501 Forbes Boulevard
Suite H
Lanham, MD  20706
301-459-3366 x.5010
fax 301-429-5748

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: showing fs modules in --version ?

Posted by John Peacock <jp...@rowman.com>.
Ben Collins-Sussman wrote:
> It's a problem.  That's a circular dependency.  Just about every library 
> depends on libsvn_subr... libsvn_subr is the absolute bottom of the 
> stack.  It can't call into *any* other svn library.

Then I'll just go ahead and cut and paste the common code into each of the 
command line utilities' --version path.

John

-- 
John Peacock
Director of Information Research and Technology
Rowman & Littlefield Publishing Group
4720 Boston Way
Lanham, MD 20706
301-459-3366 x.5010
fax 301-429-5747

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: showing fs modules in --version ?

Posted by Ben Collins-Sussman <su...@collab.net>.
On Mar 23, 2005, at 2:17 PM, John Peacock wrote:
>
> OK, I'm having a thinko here.  If I add svn_fs_print_fs_modules() to 
> fs-loader.c and then try and call it from svn_opt_print_help(), then 
> libsvn_subst needs to call into libsvn_fs.  That's not a problem, 
> right?

It's a problem.  That's a circular dependency.  Just about every 
library depends on libsvn_subr... libsvn_subr is the absolute bottom of 
the stack.  It can't call into *any* other svn library.

That's why your libtool is getting confused.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: showing fs modules in --version ?

Posted by John Peacock <jp...@rowman.com>.
John Peacock wrote:
> I'm starting by creating a function in libsvn_fs/fs-loader.c to 
> enumerate the available backends (exactly like svn_ra_print_ra_libraries 
> operates in libsvn_ra).  Then it's pretty easy to add that information 
> to svn_opt_print_help() so all of the calls get it.

OK, I'm having a thinko here.  If I add svn_fs_print_fs_modules() to 
fs-loader.c and then try and call it from svn_opt_print_help(), then 
libsvn_subst needs to call into libsvn_fs.  That's not a problem, right?

I'm having a blind spot for how to get the linker to defer the call to 
the other library (I know this seems basic).  In my own defense, I went 
to see a Robyn Hitchcock concert last night and I'm still metabolizing 
the one beer I drank... ;-)

John

-- 
John Peacock
Director of Information Research and Technology
Rowman & Littlefield Publishing Group
4501 Forbes Boulevard
Suite H
Lanham, MD  20706
301-459-3366 x.5010
fax 301-429-5748

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: showing fs modules in --version ?

Posted by John Peacock <jp...@rowman.com>.
Ben Collins-Sussman wrote:
> cmpilato was only -0, and clean code factorization sounds good to me.
> 

I'm starting by creating a function in libsvn_fs/fs-loader.c to 
enumerate the available backends (exactly like svn_ra_print_ra_libraries 
operates in libsvn_ra).  Then it's pretty easy to add that information 
to svn_opt_print_help() so all of the calls get it.

John

-- 
John Peacock
Director of Information Research and Technology
Rowman & Littlefield Publishing Group
4501 Forbes Boulevard
Suite H
Lanham, MD  20706
301-459-3366 x.5010
fax 301-429-5748

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: showing fs modules in --version ?

Posted by Ben Collins-Sussman <su...@collab.net>.
On Mar 23, 2005, at 12:21 PM, John Peacock wrote:

> Ben Collins-Sussman wrote:
>> Don't remember.  Why don't you take a look at how RA does it, and 
>> imitate?  Wanna send a patch?
>
> Sure.  I'm looking at clients/cmdline/help-cmd.c and it looks 
> straightforward.  If we could change svn_opt_print_help() instead, 
> then all of the commandline apps which calls that (and uses --version) 
> would get it automagically.  But that would involve convincing C. 
> Michael that 'svn' should get this too.  Seems a waste to edit 
> svn(admin|look) to duplicate code...
>

cmpilato was only -0, and clean code factorization sounds good to me.

 From what I've seen on the users@ list, a lot of newbies start out by 
playing with file:/// urls, and they want to know about fs-backends 
just as much as experienced admins setting up servers with 
svnadmin/svnlook/svnserve.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: showing fs modules in --version ?

Posted by "C. Michael Pilato" <cm...@collab.net>.
John Peacock <jp...@rowman.com> writes:

> Ben Collins-Sussman wrote:
> > Don't remember.  Why don't you take a look at how RA does it, and
> > imitate?  Wanna send a patch?
> 
> Sure.  I'm looking at clients/cmdline/help-cmd.c and it looks
> straightforward.  If we could change svn_opt_print_help() instead,
> then all of the commandline apps which calls that (and uses --version)
> would get it automagically.  But that would involve convincing
> C. Michael that 'svn' should get this too.  Seems a waste to edit
> svn(admin|look) to duplicate code...

I'll survive.  :-)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: showing fs modules in --version ?

Posted by John Peacock <jp...@rowman.com>.
Ben Collins-Sussman wrote:
> 
> Don't remember.  Why don't you take a look at how RA does it, and 
> imitate?  Wanna send a patch?

Sure.  I'm looking at clients/cmdline/help-cmd.c and it looks 
straightforward.  If we could change svn_opt_print_help() instead, then 
all of the commandline apps which calls that (and uses --version) would 
get it automagically.  But that would involve convincing C. Michael that 
'svn' should get this too.  Seems a waste to edit svn(admin|look) to 
duplicate code...

John

-- 
John Peacock
Director of Information Research and Technology
Rowman & Littlefield Publishing Group
4501 Forbes Boulevard
Suite H
Lanham, MD  20706
301-459-3366 x.5010
fax 301-429-5748

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: showing fs modules in --version ?

Posted by Ben Collins-Sussman <su...@collab.net>.
On Mar 23, 2005, at 11:02 AM, John Peacock wrote:

> Ben Collins-Sussman wrote:
>> $ svnadmin --version
>> svnadmin, version 1.2.0 (dev build)
>>    compiled Mar 23 2005, 09:58:58
>> Copyright (C) 2000-2004 CollabNet.
>> Subversion is open source software, see http://subversion.tigris.org/
>> This product includes software developed by CollabNet 
>> (http://www.Collab.Net/).
>> The following filesystem back-end implementations are available:
>> * fs_base:  can access BerkeleyDB repositories
>> * fs_fs:    can access FSFS repositories
>> Might this be a nice thing to add?
>
> +1.  More information good... ;-)
>
> Should be just a couple of #ifdef's right?
>

Don't remember.  Why don't you take a look at how RA does it, and 
imitate?  Wanna send a patch?


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: showing fs modules in --version ?

Posted by John Peacock <jp...@rowman.com>.
Ben Collins-Sussman wrote:
> $ svnadmin --version
> svnadmin, version 1.2.0 (dev build)
>    compiled Mar 23 2005, 09:58:58
> 
> Copyright (C) 2000-2004 CollabNet.
> Subversion is open source software, see http://subversion.tigris.org/
> This product includes software developed by CollabNet 
> (http://www.Collab.Net/).
> 
> The following filesystem back-end implementations are available:
> 
> * fs_base:  can access BerkeleyDB repositories
> * fs_fs:    can access FSFS repositories
> 
> 
> 
> Might this be a nice thing to add?

+1.  More information good... ;-)

Should be just a couple of #ifdef's right?

John

-- 
John Peacock
Director of Information Research and Technology
Rowman & Littlefield Publishing Group
4501 Forbes Boulevard
Suite H
Lanham, MD  20706
301-459-3366 x.5010
fax 301-429-5748

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: showing fs modules in --version ?

Posted by "C. Michael Pilato" <cm...@collab.net>.
Ben Collins-Sussman <su...@collab.net> writes:

> On Mar 23, 2005, at 11:45 AM, C. Michael Pilato wrote:
> >
> > -0 on the 'svn' change.
> >
> 
> Just curious, why?   We're talking about changing every program which
> potentially links to libsvn_ra_local and has a --version switch.  Why
> is 'svn' excluded from that list?

Because all those other binaries are thought of "servers or server
tools".  It's just happenchance that 'svn' can swing both ways using
ra-local.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: showing fs modules in --version ?

Posted by Ben Collins-Sussman <su...@collab.net>.
On Mar 23, 2005, at 11:45 AM, C. Michael Pilato wrote:
>
> -0 on the 'svn' change.
>

Just curious, why?   We're talking about changing every program which 
potentially links to libsvn_ra_local and has a --version switch.  Why 
is 'svn' excluded from that list?


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: showing fs modules in --version ?

Posted by "C. Michael Pilato" <cm...@collab.net>.
Ben Collins-Sussman <su...@collab.net> writes:

> Someone brought up the idea of --version showing fs-backends the same
> way we show available RA layers.  It seems like a good idea to me.

[...]

+1 on the 'svnadmin' and 'svnlook' changes.

-0 on the 'svn' change.

And allow me to suggest that 'svnserve --version' grow this
functionality, too.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org