Ruby subversion bindings


#1

Dear all,

I’m trying to run one of the examples included with the Ruby Subversion
bindings:

$ svnlook.rb repos tree
/usr/lib/ruby/site_ruby/1.8/svn/util.rb:58:in svn_repos_fs_wrapper': uninitialized constant Svn::Client (NameError) from /usr/lib/ruby/site_ruby/1.8/svn/util.rb:58:infs_wrapper’
from /usr/lib/ruby/site_ruby/1.8/svn/repos.rb:85:in fs' from ./svnlook.rb:34:ininitialize’
from ./svnlook.rb:538

Now, the mentioned util.rb seems to be full of Ruby magic that i’m
having a hard time debugging it. Isn’t this the correct way of calling
svnlook.rb?

PS. Ending the repository path with a ‘/’ results in a different error:

$ svnlook.rb svn/ tree
ruby: subversion/libsvn_subr/path.c:114: svn_path_join: Assertion
`is_canonical (base, blen)’ failed.
Geannuleerd

This is with ruby 1.8.4 (2005-12-24) [i686-linux] on Gentoo.

What am i doing wrong?

Thanks a lot,


#2

Hi,

In removed_email_address@domain.invalid
“Ruby subversion bindings” on Thu, 20 Apr 2006 06:08:27 +0900,
Pieter E. removed_email_address@domain.invalid wrote:

Now, the mentioned util.rb seems to be full of Ruby magic that i’m
having a hard time debugging it. Isn’t this the correct way of calling
svnlook.rb?

The following will solve the problem:

% ruby -r svn/client -r svnlook.rb …

Or, could you add

require ‘svn/client’

into the svnlook.rb.

I’ll fix the problem and commit the fix into the svn repository.

PS. Ending the repository path with a ‘/’ results in a different error:

$ svnlook.rb svn/ tree
ruby: subversion/libsvn_subr/path.c:114: svn_path_join: Assertion
`is_canonical (base, blen)’ failed.
Geannuleerd

This is with ruby 1.8.4 (2005-12-24) [i686-linux] on Gentoo.

What am i doing wrong?

A repository path passed to Svn::Repos.open must be canonical.

If you want to use svnlook.rb with more convenience, replace
the following line in svnlook.rb (last line)

SvnLook.new(path, rev, txn).run(cmd)

with

SvnLook.new(basename(path), rev, txn).run(cmd)

Thanks,


#3

Kouhei S. wrote:

I’ll fix the problem and commit the fix into the svn repository.

[…]

PS. Ending the repository path with a ‘/’ results in a different error:

A repository path passed to Svn::Repos.open must be canonical.

If you want to use svnlook.rb with more convenience, replace
the following line in svnlook.rb (last line)

SvnLook.new(path, rev, txn).run(cmd)

with

SvnLook.new(basename(path), rev, txn).run(cmd)

Thanks a lot Kou!