We have a private chat room on campfire
, an awesome group chat solution from 37signals.
We also have lots of code— HTML, PHP, Ruby, C, whatever— checked into subversion
Back in the day, all of our code lived in a subversion repository provided by Beanstalk
. And Beanstalk had a very nice campfire integration feature already. And it was good.
But today our code lives in, gosh, at least three places:
2. A trac-based subversion repository we share with a major client
3. The Symfony project subversion repository, where stuff like pkContextCMSPlugin lives.
So, for a while, we didn't have any live notifications when new code changes were committed. And we were sad.
I read up on solutions. On the subversion side they involved things like "post-commit hooks" which only make sense if you run the server and want to muck with such things. On the campfire side they were coded in Ruby, a fine language but not available on the servers in question in an acceptable version, blah blah blah.
Then I discovered icecube
, a PHP interface to Campfire by Emil Sundberg of Mimmin
. And I also discovered Subversion's
command, which lets you find out what's happened lately on a subversion repository in an efficient way... that is, without beating the server to death... even if you don't run that repository.
And now there is joy and happiness and kittens and monkeys and monkey-kittens. svncampfire
monitors any number of folders in any number of repositories for you, and sends a summary of what's happened since the last run to the campfire chat room of your choice.
You can download svncampfire from sourceforge
. To use it, you'll need:
PHP 5, with cURL support (check php -i to find out if you have that)
A campfire chat room (duh)
Some subversion repositories you'd like to monitor (double duh)
crontab access, or some other way of running scheduled tasks
You can run it on your development laptop (which I'm doing now) or, for that 24-7 availability thing, on a server.
See the included README file for complete documentation on how to use and configure svncampfire.