ruacce -- the repository updater and custom command executer

ruacce (pronounced “lu-ah-tché”) is a small command line tool that helps you with managing the repositories you’re tracking. You can also define rules that performs some actions on your repositories (like building gems, running (R|M)akefiles,…)

ruacce is scm-agnostic so you can mix Git, Mercurial or Subversion repositories without any worry.

** Install **

$ sudo gem install madx-ruacce –source=gems.github.com/ or $ cd your/repos/folder/ $ git clone git://github.com/madx/ruacce.git $ cd ruacce; rake And a fresh gem will be placed in the pkg/ folder

** Usage **

First, run ruacce –help. Then, cd to the folder where you keep your repos and run ruacce -C to generate a blank config file (.ruacce_rules, created in the current folder)

Ok let’s say you’ve got those awesome repositories in your folder:

shoes, merb-core, merb-more, dm-core, dm-more, haml and mtest (managed by git) trac, lighttpd (managed by svn) audacious (tracked by mercurial)

That’s a big bunch of repositories, and when you want to update them all you have to manually cd in the folder an run the appropriate command. But wait. No. You just installed ruacce !!!

The first thing you may want to do is defining a command to fetch the latest changes on you repos. It’s “git/hg pull” for Git and Mercurial and “svn update” for Subversion.

So for defining the actions for git repositories you could do a : $ ruacce -s shoes,merb-more,merb-core,dm-core,dm-more,haml,mtest -A pull

This will add a rule “pull” for those repos. The system will ask you for the command to be run when executing this rule. Type “git pull” and push Enter. Since you’ve grasped how it works, you already added rules for your Mercurial and Subversion repositories.

The important thing is that -s selects repositories, and the action will be executed upon each of them.

You can show the rules defined on some projects using -R and selecting them with -s

The -X switch is used to hide some folders from ruacce so it doesn’t count them as repositories.

Well, I think this should be enough to start, the –help switch will tell you the rest.

** Bug reports/testimonials **

Feel free to send them on github (github.com/madx/ruacce) or drop me an email. I also accept patches :) If you’re using ruacce and want to be in this README, write a funny testimonial and email it to me.