As you well know, we’ve of late been on the Piston kick for our Rails plugins. Lots of great libraries in our vendor/plugins directory, all stored locally and sync’d with the author’s repository. Real nice. But, there’s a problem. One last something standing in the way. Specifically: How do you know when a remote repository is updated? You need to know about changes to sync (read: update). Heaven forbid we miss a killer new feature.
You can follow the blogs, or check the Rubyforge, or grab the Trac feed, but sometimes none of these things are available. Sometimes all you really have is the repository.
Sometimes you need Subtlety.
subtlety: a remote subversion excursion
Subtlety is a little Camping mini-site cooked for this very purpose. Give it a public repository’s url (starting with http:// or svn://) and it gives you an RSS feed of the changes. That’s it. Really.
Get Rollin’
Get started by subscribing to the mofo changelog. Or maybe you prefer Cheat? _why’s sandbox? Some inferred routes action? You get the picture.
Be creative. The guys over at Nuance Labs rolled up the RSSes for all their plugins into a single feed, thanks to Google Reader. How cool is that?
Let me know if you have any problems. Pass it on. Etc. Feeds are cached for 15 minutes, so be patient when trying it out.
More importantly, have fun and be responsible.
Update: Private Repositories
Some folks have asked how they can use Subtlety with private repositories. Well, you can’t. But you can roll your own.
One solution is the svn2rss.py Python script included with Subversion. Because I know how much you love Python.
Another option is to do what technoweenie did and create your own RSS feed using XSLT. This is the foundation upon which Subtlety is built, you see.
Finally, if you must, you can checkout the Subtlety code and hack it as you see fit:
$ svn co svn://errtheblog.com/svn/subtlety
If you go this route you may want to grab (of course) the subtle Subtlety RSS Feed.
Come up with a cool hack? Find a bug? Be sure to let me know. The comments work. So does chris[at]ozmm[dot]org.
Thanks Chris Wanstrath!
My method for managing all things Subversion recently is just to use SVK. From my own projects to 3rd party Rails plugins. Another niceness is that I get very easy & cheap forking. :-)
I haven’t really used Piston, but coupled with SVK, Subtlety is seriously a killer! :-)
Wauw, neat! Show us the code!
This is awesome, Chris. You knew exactly what I needed before I knew it myself. I’m tearing up, man. No joke.
At work we have an internal server that subtlety can’t reach, but I’d love to have this functionality to roll out to my boss. Is there anyway that I can get a copy of this code?
You da man – seriously!
Great stuff. Would love to see diffs in the feed! +1 releasing the source so I can just add it. ;)
Excellent! Just what I need!
One small path to get it to function properly on my OSX machine:Not closing files results in trunked files in some cases.
how do i use it? I have the code but not sure how to run it on my machine?
I just tried with the streamlined svn url and it fails? Maybe because the explicit port in the url?
http://streamlinedframework.org:8079/streamlined/plugins/streamlined
It worked fine with filter_column url’s.
For some repositories spanning too much junk you’re not interested in tracking (case in point: the whole MIT Simile laboratory’s hackery goes into a single subversion repository, and I’m only interested in tracking the progress of one subtree, i e exhibit/ (subtlety feed of that with broken repository links).
Allowing an optional second parameter to the feed, so we can set it up to point at the repository root but only track a subtree would be a great improvement (so links can work).
Hey All, check out Crank (svn2rss.com). It’s a ruby tool that let’s you generate anything from repo logs. And it’s really simple. Dead simple.
It uses Ruby’s ERB templates so you can setup HTML/RSS/XML/WHATEVER templates that render the log data. It’s so easy! And it’s sweet in post-commit hooks
Aaron
Another option to create feeds for your own private repositories not reachable by Subtlety is this super simple PHP script. If you have PHP and mod_userdir or the like ready to go, just place it in your public_html directory and you’re set.
What happened to the subtlety repo?
Looks like this service is broken now:
-B…
It looks like this service is down now. Are you guys ever planning on bringing it back up? I hope so because I built some php scripts to automatically dump the Subtlety RSS feed onto a website (e.g., http://myexperience.sourceforge.net).
A friend of mine built the same thing a few months back:
http://svnfeed.com/
Chime in.