2338: post-review --revision-range does not work for clearcase

dren*****@gmai***** (Google Code) (Is this you? Claim this profile.)
Dec. 24, 2012
What version are you running?
RBTools 0.3.4

What's the URL of the page containing the problem?

What steps will reproduce the problem?
..try with a single revision..
post-review --revision-range="/vobs/foo/test.py@@/main/mydev/2:/vobs/foo/test.py@@/main/mydev/3" --output-diff

...or multiple revisions..
post-review --revision-range="/vobs/foo/test.py@@/main/mydev/2:/vobs/foo/test.py@@/main/mydev/3;/vobs/foo/test2.py@@/main/mydev/1:/vobs/foo/test2.py@@/main/mydev/3" --output-diff

What is the expected output? What do you see instead?
Instead of the diffs being generated I get an error saying
"There don't seem to be any diffs!"

What operating system are you using? What browser?
Centos 5

Please provide any additional information below.
The problem is the diff_between_revisions code in the ClearCaseClient. According to the docs at http://www.reviewboard.org/docs/manual/dev/users/tools/post-review/ the format of --revision-range should be STARTREV:ENDREV
However the code is splitting based on ';' not ':'

1485     def diff_between_revisions(self, revision_range, args, repository_info):
1486         """Performs a diff between passed revisions or branch."""
1488         # Convert revision range to list of:
1489         # (previous version, current version) tuples
1490         revision_range = revision_range.split(';')
1491         changeset = zip(revision_range[0::2], revision_range[1::2])
1493         return (self.do_diff(changeset)[0], None)

The other thing is the docs don't mention how to format --revision-range for more than one revision. Doing --revision-range=fileAOLDREV:fileANEWREV:fileBOLDREV:fileBNEWREV works but looks odd.

As a workaround for this bug I have to use ';' to separate the revisions..
#1 david
  • +Component-RBTools