3024: Enhance Review Board RBTools (rbt) to support svn tree (or file copy)
- Fixed
- Review Board
sudhir.********@gmai***** (Google Code) (Is this you? Claim this profile.) | |
Aug. 12, 2013 |
What version are you running? RBTools 0.5.1 Describe the enhancement and the motivation for it. RBTools does NOT support svn tree copy (or file/files copy) from other branches. Please provide any additional information below. Please find attached patch. With patch applied, rbt notifies user that it has detected tree/file copy and asks the user to sudhirbs@rhel-sudhirbs usbrdl $ svn st A + my_dir sudhirbs@rhel-sudhirbs $ rbt post One or more files in your changeset has history scheduled with commit. Please add option '--svn-show-copies-as-adds=y/n' and re-run sudhirbs@rhel-sudhirbs $ rbt post --svn-show-copies-as-adds=y Review request #14493 posted.
Missed patch to utils/diffs.py file. Adding ... --- 0.5.1.1/utils/diffs.py (revision 408105) +++ 0.5.1.1/utils/diffs.py (working copy) @@ -1,14 +1,16 @@ -def get_diff(scmtool, repository_info, revision_range=None, - svn_changelist=None, files=[]): +def get_diff(scmtool, repository_info, svn_show_copies_as_adds=None, + revision_range=None, svn_changelist=None, files=[]): """Returns a diff as a string.""" if revision_range: diff, parent_diff = scmtool.diff_between_revisions( revision_range, files, - repository_info) + repository_info, + svn_show_copies_as_adds) elif svn_changelist: - diff, parent_diff = scmtool.diff_changelist(svn_changelist) + diff, parent_diff = scmtool.diff_changelist(svn_changelist, + svn_show_copies_as_adds) else: - diff, parent_diff = scmtool.diff(files) + diff, parent_diff = scmtool.diff(files, svn_show_copies_as_adds)
-
+
This patch fixes other clients from breaking due to svn client change. --- 0.5.1.1/utils/diffs.py (revision 408105) +++ 0.5.1.1/utils/diffs.py (working copy) @@ -1,14 +1,24 @@ -def get_diff(scmtool, repository_info, revision_range=None, - svn_changelist=None, files=[]): +def get_diff(scmtool, repository_info, svn_show_copies_as_adds=None, + revision_range=None, svn_changelist=None, files=[]): """Returns a diff as a string.""" if revision_range: - diff, parent_diff = scmtool.diff_between_revisions( - revision_range, - files, - repository_info) + if scmtool.name == 'Subversion': + diff, parent_diff = scmtool.diff_between_revisions( + revision_range, + files, + repository_info, + svn_show_copies_as_adds) + else: + diff, parent_diff = scmtool.diff_between_revisions( + revision_range, + files, + repository_info) elif svn_changelist: - diff, parent_diff = scmtool.diff_changelist(svn_changelist) + diff, parent_diff = scmtool.diff_changelist(svn_changelist, + svn_show_copies_as_adds) else: - diff, parent_diff = scmtool.diff(files) - + if scmtool.name == 'Subversion': + diff, parent_diff = scmtool.diff(files, svn_show_copies_as_adds) + else: + diff, parent_diff = scmtool.diff(files) return diff, parent_diff
-
+
Please review and I would be glad to do necessary changes. http://reviews.reviewboard.org/r/4279/