Hi,
I have an issue when creating a code review for files added in a new
folder, from within the folder.
Due to our setup and processes, we have a subversion repository that
contains many different libraries.
Say I add a new library and commit changes as I develop the library, for
backup purposes. The new library is not yet live and sometimes not even
compiling. When the library is at a point where it can be reviewed) , I
need to submit it for code review for the rest of the team to look at the
code. Most often the libraries are small enough that this is doable.
So I have the following structure before starting my library with revision
numbers given:
- MyRepo (r10)
- Lib1 (r10)
- Lib2 (r05)
I then add my library with a few initial files (r11) and commit code as I
develop, now that I want to put up a review I have:
- MyRepo (r50)
- Lib1 (r20)
- Lib2 (r30)
- MyNewLib (r50)
I only want to put up the code in MyNewLib for review, all changes
including the initial files in r11 up to all changes in r50.
So my initial assumption was to go into MyNewLib in command line and do:
MyRepo/MyNewLib$ rbt post r11:50
But I do not get the files added with the first commit, only the changes
between r11 up to r50.
Next I tried:
MyRepo/MyNewLib$ rbt post --debug r0:50
Gives the following traceback:
>>> ...
>>> Running: svn --non-interactive log --xml -r r0 -l 1
>>> Command exited with rc 1: ['svn', '--non-interactive', u'log', u'--xml',
u'-r', u'r0', u'-l', u'1']
<?xml version="1.0" encoding="UTF-8"?>
<log>
---
Traceback (most recent call last):
File "/usr/local/bin/rbt", line 9, in <module>
load_entry_point('RBTools==0.7.5', 'console_scripts', 'rbt')()
File
"/usr/local/lib/python2.7/dist-packages/RBTools-0.7.5-py2.7.egg/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-0.7.5-py2.7.egg/rbtools/commands/__init__.py"
, line 622, in run_from_argv
exit_code = self.main(*args) or 0
File
"/usr/local/lib/python2.7/dist-packages/RBTools-0.7.5-py2.7.egg/rbtools/commands/post.py"
, line 678, in main
self.revisions = get_revisions(self.tool, self.cmd_args)
File
"/usr/local/lib/python2.7/dist-packages/RBTools-0.7.5-py2.7.egg/rbtools/utils/review_request.py"
, line 75, in get_revisions
revisions = tool.parse_revision_spec(cmd_args)
File
"/usr/local/lib/python2.7/dist-packages/RBTools-0.7.5-py2.7.egg/rbtools/clients/svn.py"
, line 192, in parse_revision_spec
'Could not parse specified revisions: %s' % revisions)
rbtools.clients.errors.InvalidRevisionSpecError: Could not parse specified
revisions: [u'r0', u'50']
Probably since there is no real r0 in MyNewLib which is confirmed with
MyRepo/MyNewLib$ svn --non-interactive log --xml -r r0 -l 1
Gives:
<?xml version="1.0" encoding="UTF-8"?>
<log>
svn: E195012: Unable to find repository location for
'svn+ssh://<server>/MyRepo/MyNewLib'
in revision 0
On the other hand
MyRepo/MyNewLib$ svn diff -r0:50
Gives the correct diff for what I am interested in.
If I try to post the review one folder up (in MyRepo) all changes in lib1
and lib2 end up in the review, which is not what I want.
Is there a way to handle this use case using Review Board command line tool?
If not, how can I use the output of "svn diff -r0:50" to be the input into
the "rbt" command line tool?
MyRepo/MyNewLib$ svn diff -r0:50 | rbt post --debug --diff-filename=- --server
http://<rb-server-ip>:<port>/ --username <username> --password <password>
--repository MyRepo
gives the following error:
>>> Got API Error 219 (HTTP code 400): The specified diff file is empty.
>>> Error data: {u'stat': u'fail', u'err': {u'msg': u'The specified diff
file is empty.', u'code': 219}}
Traceback (most recent call last):
File "/usr/local/bin/rbt", line 9, in <module>
load_entry_point('RBTools==0.7.5', 'console_scripts', 'rbt')()
File
"/usr/local/lib/python2.7/dist-packages/RBTools-0.7.5-py2.7.egg/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-0.7.5-py2.7.egg/rbtools/commands/__init__.py",
line 622, in run_from_argv
exit_code = self.main(*args) or 0
File
"/usr/local/lib/python2.7/dist-packages/RBTools-0.7.5-py2.7.egg/rbtools/commands/post.py",
line 754, in main
(msg_prefix, e))
rbtools.commands.CommandError: Error validating diff
The specified diff file is empty. (HTTP 400, API Error 219)
Regards,
--
Supercharge your Review Board with Power Pack:
https://www.reviewboard.org/powerpack/
Want us to host Review Board for you? Check out RBCommons:
https://rbcommons.com/
Happy user? Let us know! https://www.reviewboard.org/users/
---
You received this message because you are subscribed to the Google Groups
"reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.