Rancid Subversion 2.3.1 Patch

Justin Grote justin at grote.name
Mon Nov 8 04:15:21 UTC 2004


Greetings,

As promised, here is a patch to rancid 2.3.1 to enable Subversion support. It is a drop-in replacement for rancid, meaning it functions exactly the same, all the configuration files/procedures are exactly the same as well. The only thing that has been modified is that the backend has just been converted from CVS to Subversion. 

This is just a proof of concept and is NOT SUPPORTED BY THE RANCID TEAM. I've been running this in place of 2.3.1 for about a month now and it has functioned flawlessly, including diffs, updates mailouts,  and every other functionality I could test. (I made this version a few hours after I posted about it on this list, took no time at all).

RANCID devs, please see my final note at the bottom and let me know what you think.

This patch is also available temporarily at http://myweb.cableone.net/rastan/rancidSVN.diff (I'm in the middle of switching hosting providers so my primary site is down)



You, of course, need to have Subversion on your system to run this. Most of the major Linux distributions come with subversion (it's almost as ubiquitous as CVS in new distributions!), including SuSE 9.1, Fedora (Red Hat) Core 2, Mandrake 10, Gentoo, Debian, etc.

To apply the patch, extract the rancid-2.3.1.tar.gz source package, place the patch incide the rancid-2.3.1 directory that is created, and then from inside the rancid-2.3.1 directory type:

# patch -p1 < rancidSVN.diff
(# is your prompt, do not include it)

Then install as normal.

Some notes:

- If you want to use your existing rancid CVS history with this tool, you can use the excellent cvs2svn tool to convert your existing history over to subversion: http://cvs2svn.tigris.org/

- Thanks to subversion, you can move and/or rename router entries and still preserve their history. You can even move them between groups safely! To do this, check out a separate copy of the repository, then svn mv <config> <newconfiglocation>. Edit your router.db files as necessary, then do an svn commit. Rancid will be none the wiser.

- Since I coded it as a drop-in replacement, your repository has to be on the same server. I do have a working version that allows your repository to be hosted anywhere subversion lets it. I've set up a test environment with multiple rancid's collecting config info for different sets of routers and then committing to a central repository. It is quite cool and opens up a lot of possibilities for making rancid more scalable.

***************
Note to Devs:
***************
I hope this proof of concept gives you an example that you can play with and see how subversion works. I think that it's improvements over CVS are highly compelling to be used in rancid. The next version I plan to work on would be a non-intrusive patch that would add subversion support as a configurable option. It would be a simple switch in rancid.conf such as USESUBVERSION=yes. Let me know if you are interested and I'll publish my development repository if you want to keep tabs on it (my repository is in Subversion, naturally) ;). 

______________________________
Justin Grote
Network Architect, CCNA
JWG Networks
Email: nospam-justin at grote.name (remove nospam-)
SMS:   nospam-rastan at vtext.com (remove nospam-)
Phone: (208) 631-5440
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rancidSVN.diff
Type: application/octet-stream
Size: 5498 bytes
Desc: not available
Url : http://www.shrubbery.net/pipermail/rancid-discuss/attachments/20041107/be4c0857/attachment.obj 


More information about the Rancid-discuss mailing list