Accessing SVN repository through Ruby

Hi people!

My boss ask me about a ruby library that can provide checking-out,
updating and management code-bases from SVN’s repositories. Wich is the
better way to get access and manipulate code-bases from SVN’s
repositories using ruby?

Is there any library can provide me these functionality?

Can i use CUI’s (Command User Interface) SVN through Ruby to do that?

I just need a little light…

Thank you.

On 28 avr. 09, at 08:57, Andrey R-andrey wrote:

Can i use CUI’s (Command User Interface) SVN through Ruby to do that?

I just need a little light…

Thank you.

Posted via http://www.ruby-forum.com/.

The first question I’d ask is why svn in this day and age? You
might consider svn an evolutionary dead end. I don’t know of a ruby
svn library although one might exist. You could just call the
command line functions. There happens to be a ruby implementation of
git here: GitHub - ruby-git/ruby-git: Ruby/Git is a Ruby library that can be used to create, read and manipulate Git repositories by wrapping system calls to the git binary.. That might
be a better solution assuming you didn’t have to use svn.

Andrey R-andrey wrote:

My boss ask me about a ruby library that can provide checking-out,
updating and management code-bases from SVN’s repositories. Wich is the
better way to get access and manipulate code-bases from SVN’s
repositories using ruby?

Invoking the command-line svn client from ruby is a reasonable approach.
Have a look at the source for Capistrano, which does that.

I’m also pretty sure there’s a native ruby binding (or at least a SWIG
binding) as part of libsvn. Google “svn ruby binding” or “libsvn ruby
binding”

That gives you a very low level guts interface, and last time I looked
it wasn’t very well documented, but there are examples out there if you
search for them.

On 28 avr. 09, at 15:37, Brian C. wrote:

Posted via http://www.ruby-forum.com/.

Invoking the command line is reasonable depending on how much
efficiency you need. In most instances the time to call the command
line function is going to be trivial. That isn’t always the case.
The Github folks found that it was too slow. So they ended up re-
implementing git with Ruby. My guess is that in your case it
doesn’t matter. But I don’t know enough about your project to say
for sure.

Did anyone ever get comfortable with any interface to Subversion from
Ruby? I’m
seeing a lot of stuff lying around, and I wonder how good it is. My
interest
has to do with secure authentication:

When I pass an svn --username me --password mine cat
http://h/repo/mfile

it of course ends up on the process list. If I could use a ruby
interface that
can allow me to run everything with individual authentication and keeps
it all
off the process list and other public areas, I would be better off.
This is not
a real big deal otherwise, but if I can do it for auth, it would be
worth
migrating.

Juan Z. wrote:

Invoking the command line is reasonable depending on how much
efficiency you need.

And as usual - benchmark before making any premature decisions about
performance.

svn itself is not fast, especially when accessing a remote repository,
so the overhead of invoking an external program is likely to be small in
the overall scheme of things.

That is, unless you’re thinking of writing “svnhub” and having millions
of users checking into your repositories :slight_smile:

Brian C. wrote:

Xeno C. wrote:

Did anyone ever get comfortable with any interface to Subversion from
Ruby?

I just came across detailled info on installing the ruby subversion
bindings here:
http://warehouseapp.com/installing/ruby-subversion-bindings

warehouseapp itself is now open source, so you can look through it and
see how they use it.
Thank you. That looks helpful.

Xeno C. wrote:

Did anyone ever get comfortable with any interface to Subversion from
Ruby?

I just came across detailled info on installing the ruby subversion
bindings here:
http://warehouseapp.com/installing/ruby-subversion-bindings

warehouseapp itself is now open source, so you can look through it and
see how they use it.

I just wanted to post that there is now a svn ruby gem, which makes this
sort of thing very easy.

see this thread Subversion-ruby - Ruby - Ruby-Forum