Enhancements to the CVS scmtool

Review Request #157 — Created Sept. 28, 2007 and submitted


Review Board SVN (deprecated)


This patch makes several enhancements to the CVS scmtool:

- If a password is given for a pserver, include it in the CVSROOT string.  This makes it so a 'cvs login' is not necessary (though still allowed).

- Tweak the diff parsing to work with patches between multiple revisions, for reviewing existing code.  (The patch will have multiple 'retrieving revision ...' lines.)

- Enhance the error handling to recognize more errors, and to distinguish FileNotFound from more general errors.  For example, a misconfigured repo used to raise FileNotFound, which is confusing.  SCMError makes it more clear.
- We don't have automated tests for pservers, but I manually checked that including the password works.
- Added a new test to make sure that inter-revision diffs parse ok.
- Added a new test to make sure that a bad revision number will raise FileNotFoundError.
- Added a new test to check that a bad Repository config will raise SCMError.
  1. This looks great. One very small thing.
  2. trunk/reviewboard/scmtools/cvs.py (Diff revision 1)
    No need for the outer parens. The "not" and the "or" should also be aligned.
    1. The parens are just there to let it break across multiple lines, but if you prefer a trailing backslash, that's fine.  I'll leave these tweaks up to you when you commit. :)