Rework post-review for SVN support and several new options

Review Request #108 — Created July 7, 2007 and submitted

Review Board SVN (deprecated)
Restructured much of post-review in order to clean up the code and to add both SVN support (from /r/89/) and Perforce support to the same script. This will allow support for CVS and other backends down the road.

We now check the user's $HOME/.reviewboardrc for the Review Board server used for the particular tree the user is in. If not found, we check up the directory hierarchy for a .reviewboardrc and use the one specified in that, if found. If not, we perform logic specific to the SCMTool. For example, SVN will check reviewboard:url properties in the directories up to the top of the local checkout and then check the repository root for the server.

This also adds support for specifying default reviewers on the command line and for updating an existing review request for systems that don't have changeset support (like svn) by using the -r (or --review-request-id) parameter.
Tried the new options and tried against a Perforce and a SVN repository. Tried updating an existing review request with -r. Posted this review request using the new post-review.
  1. Just a cursory glance; I'm assuming all the actual logic works, since you've been testing it.
  2. Split onto separate lines
  3. You can write this as "if 'USERPROFILE' in os.environ:"
    Which makes it sexy.  Yeah.
    1. Good point. Fixed all instances.
  4. I'm not sure I like calling this "SCMTool".  It isn't the same thing as our normal SCMTool instances, so it's a bit confusing.
    Maybe "SCMClient", "SVNClient", etc.?
    1. Much better name. Done.
  5. /trunk/reviewboard/contrib/tools/post-review (Diff revision 2)
    Can you add a comment suggesting why these are commented out?