What version are you running?
RBTools 0.7.10
svn, version 1.9.3 (r1718519)What steps will reproduce the problem?
- Prepare 2 SVN branches:
merge-source branch and merge-destination branch,
where SVN Relative URL level must be different.
eg.
http://xxx.com/svn/svntest/TestProject/trunk
http://xxx.com/svn/svntest/TestProject/branches/4.x/br_4-0_test02/trunk////////////////////////////
/ Prepare svn merge change /
////////////////////////////
2. At the merge-source branch, create a new folder and a new file that merge-destination branch doesn't have.
eg.$ svn diff Index: test/test01 =================================================================== --- test/test01 (nonexistent) +++ test/test01 (revision 19438) @@ -0,0 +1 @@ +test01
- At the merge-source branch, commit the change above:
svn commit//////////////////////////////////
/ Prepare reviewboard patch file /
//////////////////////////////////
4. At the merge-destination branch, run:svn merge -c $REVISION $merge-source_branch_url
- At the merge-destination branch, run rbt diff --svn-show-copies-as-adds=y
$ rbt diff --svn-show-copies-as-adds=y --debug $ rbt diff --svn-show-copies-as-adds=y --debug >>> RBTools 0.7.10 >>> Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] >>> Running on Linux-4.4.0-96-generic-x86_64-with-Ubuntu-16.04-xenial >>> Home = /home/rickliu >>> Current directory = /tmp/br_4-0_rtest02_trunk >>> Command line: rbt diff --svn-show-copies-as-adds=y --debug >>> Running: tf vc help >>> Checking for a Subversion repository... >>> Running: svn --non-interactive info >>> Running: diff --version >>> Running: svn --non-interactive --version -q >>> repository info: Path: http://xxx.com/svn/svntest, Base path: /TestProject/branches/4.x/br_4-0_test02/trunk, Supports changesets: False >>> Making HTTP GET request to http://172.16.182.156/api/ >>> Running: svn --non-interactive info >>> Running: diff --version >>> Running: svn --non-interactive --version -q >>> repository info: Path: http://xxx.com/svn/svntest, Base path: /TestProject/branches/4.x/br_4-0_test02/trunk, Supports changesets: False >>> Running: svn --non-interactive diff --diff-cmd=diff --notice-ancestry -r BASE --show-copies-as-adds >>> Running: svn --non-interactive info test/test01 >>> Running: svn --non-interactive info test >>> Running: svn --non-interactive info . >>> Running: svn --non-interactive diff --diff-cmd=diff --notice-ancestry -r BASE --show-copies-as-adds --no-diff-deleted >>> Running: svn --non-interactive info test/test01 >>> Running: svn --non-interactive info test/test01 >>> Running: svn --non-interactive info . >>> Running: svn --non-interactive info . >>> Running: svn --non-interactive info . Index: /TestProject/branches/4.x/br_4-0_test02/trunk/test/test01 =================================================================== --- /TestProject/trunk/test/test01 (nonexistent) +++ /TestProject/branches/4.x/br_4-0_test02/trunk/test/test01 (working copy) @@ -0,0 +1 @@ +test01 Index: /TestProject/branches/4.x/br_4-0_test02/trunk =================================================================== --- /TestProject/branches/4.x/br_4-0_test02/trunk (revision 19436) +++ /TestProject/branches/4.x/br_4-0_test02/trunk (working copy) Property changes on: . ___________________________________________________________________ Added: svn:mergeinfo ## -0,0 +0,1 ## Merged /TestProject/trunk:r19438////////////
/ rbt post /
////////////
5. Post and publish the change to Reviewboard server/////////////
/ rbt patch /
/////////////
6. At different local directory, svn checkout merge-destination branch again.
7. At merge-destination branch, run rbt patch:$ rbt patch --debug 20459 >>> RBTools 0.7.10 >>> Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] >>> Running on Linux-4.4.0-96-generic-x86_64-with-Ubuntu-16.04-xenial >>> Home = /home/rickliu >>> Current directory = /tmp/br_4-0_test02_trunk >>> Command line: rbt patch --debug 20459 >>> Running: tf vc help >>> Checking for a Subversion repository... >>> Running: svn --non-interactive info >>> Running: diff --version >>> Running: svn --non-interactive --version -q >>> repository info: Path: http://xxxx.com/svn/svntest, Base path: /TestProject/branches/4.x/br_4-0_test02/trunk, Supports changesets: False >>> Making HTTP GET request to http://172.16.182.156/api/ >>> Making HTTP GET request to http://172.16.182.156/api/repositories/?tool=Subversion >>> Cached response for HTTP GET http://172.16.182.156/api/repositories/?tool=Subversion expired and was modified >>> Making HTTP GET request to http://172.16.182.156/api/review-requests/20459/diffs/ >>> Cached response for HTTP GET http://172.16.182.156/api/review-requests/20459/diffs/ expired and was modified >>> Making HTTP GET request to http://172.16.182.156/api/review-requests/20459/diffs/1/ >>> Cached response for HTTP GET http://172.16.182.156/api/review-requests/20459/diffs/1/ expired and was not modified >>> Making HTTP GET request to http://172.16.182.156/api/review-requests/20459/diffs/1/ >>> Cached response for HTTP GET http://172.16.182.156/api/review-requests/20459/diffs/1/ expired and was not modified Patch is being applied from request 20459 with diff revision 1. >>> Running: svn --non-interactive patch --strip=6 /tmp/tmpsLJ9Sd Traceback (most recent call last): File "/usr/local/bin/rbt", line 11, in <module> sys.exit(main()) File "/usr/local/lib/python2.7/dist-packages/rbtools/commands/main.py", line 133, in main command.run_from_argv([RB_MAIN, command_name] + args) File "/usr/local/lib/python2.7/dist-packages/rbtools/commands/__init__.py", line 678, in run_from_argv exit_code = self.main(*args) or 0 File "/usr/local/lib/python2.7/dist-packages/rbtools/commands/patch.py", line 196, in main revert=self.options.revert_patch) File "/usr/local/lib/python2.7/dist-packages/rbtools/commands/patch.py", line 101, in apply_patch base_dir, self.options.px, revert=revert) File "/usr/local/lib/python2.7/dist-packages/rbtools/clients/svn.py", line 797, in apply_patch rc, patch_output = self._run_svn(cmd, return_error_code=True) File "/usr/local/lib/python2.7/dist-packages/rbtools/clients/svn.py", line 881, in _run_svn return execute(cmdline, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/rbtools/utils/process.py", line 161, in execute raise Exception('Failed to execute command: %s\n%s' % (command, data)) Exception: Failed to execute command: ['svn', '--non-interactive', u'patch', u'--strip=6', u'/tmp/tmpsLJ9Sd'] svn: E195018: Cannot strip 6 components from '/TestProject/trunk_rick/test/test01'What is the expected output? What do you see instead?
rbt patch should correctly patch the change according to the diff file,
but received python exception.What operating system are you using?
Ubuntu 16.04.03 LTS
Attach the debug out from the command.
$ rbt <command> --debug <args> <debug output>Please provide any additional information below.
The root cause of this issue is the DIFF generated from "rbt diff" has different level of strip.