clean uris are orthogonal to REST. They're nice to have, but you could have randomly generated strings of alphanumericals as resource identifiers and still be perfectly RESTful.
How do you suggest associating URLs to nodes in a revision control history in a "clean" way? The URL linked in this post doesn’t seem exceptionally unreasonable given the content it points at. It uses a URL query string in a similar way to countless other mainstream web resources.
How does that have anything to do with REST?
Incidentally, if you want, you can shorten your URL quite a bit (from 182 to 107 characters). As in the use of git from the command line, your hashes only have to be long enough to be unique. So this goes to the same place:
If you want an even shorter URL (73 characters), you can drop the hb and f arguments, though that provides a bit reduced functionality (just the content):
You’re probably right that it could/should intelligently fill in the path, and not require that as an explicit argument. The a=blob argument seems to be unnecessary so could likely be dropped altogether. But eh.
So you like slashes between unlabeled arguments instead of key=value pairs separated by semicolons? I don’t see how the slashes have any particular advantage, given that the URLs are much too long to be remembered or easily read aloud, etc., either way.
Totally depends on the context. I see no reason to have a priori preference for either. This way of doing it somehow felt counter to what feels like the trend for a lot of sites.
When I'm messing with my own site, I prefer to do key value pairs, so I can easily see what I'm messing with.
I do like having some things with a rails/route type url mapping. Tends to allow for much more simplified code.