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

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

What's the URL of the page containing the problem?
n/a

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."""
1487
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])
1492
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..
david
#1 david
  • +Component-RBTools