Add SCMClient.parse_revision_spec and implement/use it in GitClient.

Review Request #5124 — Created Dec. 16, 2013 and submitted — Latest diff uploaded

Information

RBTools
master

Reviewers

Add SCMClient.parse_revision_spec and implement/use it in GitClient.

As part of redoing the revision-range syntax for rbt post, I've decided to
add a method to SCMClient that can take in an array of revisions and "parse"
them, returning a dictionary with 'base', 'tip', and optional 'parent_base'
keys. This method does all the hard work of separating out the passed-in
revisions and detecting whether or not a parent diff is required.

This method is currently only implemented for the GitClient. I've added a bunch
of unit tests to make sure it returns the right revisions, and also refactored
the diff generation code to use it for both the diff and
diff_between_revisions methods.

  • Ran unit tests.
  • Posted this change with the new code.