Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are the svn ruby bindings provided as a gem?

I see a couple dozen gems that relate to svn, but what little documentation I can find on any of them shows that they are command-line wrappers and misc helpers. (svn-command, svn-hooks, etc.)

I've seen code in the wild that does things like: require 'svn/core' and SVN.Repos.add(...), but the author of that module pulled his svn ruby tools via apt-get. This would not be an option for me, as I'm developing a windows/osx tool.

This page lists a number of projects, but in particular, I'm in need of something that will make it possible to access an svn+ssh repository and I don't have the kind of time it would take to dig through docs on a half-dozen projects, trying to bootstrap each one.

Which gem am I after? From there, I'm happy to dig through code in lieu of documents, but with a call to gem query --name-matches svn --remote returning about 30 hits, I need to narrow it down a bit first.

like image 892
Sniggerfardimungus Avatar asked May 13 '10 00:05

Sniggerfardimungus


1 Answers

Exactly what was being pulled by the apt-get command? Was it the bindings themselves (apt-get install libsvn-ruby) or the ruby modules? Since the bindings aren't ruby modules, they can't be pulled in by the gem command. You have to install them via apt-get or manually download them and install them into your system.

You can try svn_wc which requires svn_core. And, I believe svn_core uses the SWIG bindings and the Ruby bindings are included when you install Subversion. You can also try svn_tools which was created by Mark Bates who wrote Distributed Programming with Ruby. I haven't found any documentation on svn_tools though.

I noticed that the RSCM module, which is a unified way of interfacing to various SCM tools, uses the Subversion command line. If there was one tool I thought would use Subversion's API bindings, I thought this would be it, but it too uses the Subversion command line.

like image 115
David W. Avatar answered Oct 01 '22 04:10

David W.