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/