I'm not super aware of your situation, but following a "process" just
because even though it's ridiculous in extreme cases like this is absurd.

There's no good reason why --diff-filename doesn't work with Perforce other
than that it just hasn't been used. Passing in a diff file with perforce is
very rare because it would first require creating the diff with "rbt diff"
(since p4 diff creates broken diff files), and if you're doing that, you
might as well use "rbt post".

Perhaps you can use "rbt post -X ..." or "rbt post -I ..." to pare down the
size of the diff rather than hand-editing it?

On Tue, Mar 22, 2016 at 11:48 AM Subodh Konhor <skon...@gmail.com> wrote:

> I also do acknowledge that it is humanly impossible to review but we have
> a process of having review done for certain products before checkin is
> made. Therefore we post review. So yes we do post huge diffs and cannot do
> away with it.
>
> Command I ran to post the changenum is
> rbt post -d <changenum>
>
> Error in reviewboard log is
>
> 2016-03-21 09:47:58,313 - DEBUG -  - Logging to
> /var/www/rb/reviewboard/logs/reviewboard.log with a minimum level of DEBUG
> 2016-03-21 09:52:07,315 - DEBUG -  - DiffParser.parse: Beginning parse of
> diff, size = 359762870
> 2016-03-21 09:52:59,314 - INFO -  - Reloading logging settings
> 2016-03-21 09:52:59,314 - DEBUG -  - Logging to
> /var/www/rb/reviewboard/logs/reviewboard.log with a minimum level of DEBUG
> 2016-03-21 09:58:00,333 - INFO -  - Reloading logging settings
> 2016-03-21 09:58:00,333 - DEBUG -  - Logging to
> /var/www/rb/reviewboard/logs/reviewboard.log with a minimum level of DEBUG
> 2016-03-21 10:00:21,018 - DEBUG -  - DiffParser.parse: Finished parsing
> diff.
>
> 2016-03-21 10:00:55,337 - ERROR -  - Unexpected error when validating diff.
> Traceback (most recent call last):
>   File
> "/usr/local/lib/python2.7/site-packages/reviewboard/webapi/resources/validate_diff.py",
> line 156, in create
>     save=False)
>   File
> "/usr/local/lib/python2.7/site-packages/reviewboard/diffviewer/managers.py",
> line 417, in create_from_upload
>     save=save)
>   File
> "/usr/local/lib/python2.7/site-packages/reviewboard/diffviewer/managers.py",
> line 441, in create_from_data
>     check_existence=(not parent_diff_file_contents)))
>   File
> "/usr/local/lib/python2.7/site-packages/reviewboard/diffviewer/managers.py",
> line 562, in _process_files
>     copied=f.copied)
>   File
> "/usr/local/lib/python2.7/site-packages/reviewboard/scmtools/perforce.py",
> line 379, in parse_diff_revision
>     filename, revision = revision_str.rsplit('#', 1)
> ValueError: need more than 1 value to unpack
>
>
> Why doesn't rbt post --diff-filename work?
>
> Thanks,
> Subodh
>
>
> On Tuesday, March 22, 2016 at 9:47:06 PM UTC+5:30, David Trowbridge wrote:
>
>> I'm not sure what's going on in the first couple tracebacks--somehow the
>> diff headers aren't right. It would help if you included what command you
>> ran to get that output. For the last traceback, it looks like there's some
>> issues with perforce and 'rbt post --diff-filename'
>>
>> That said, a change with 1000 or more files is going to be totally
>> impossible for humans to review. What's your goal in putting it on Review
>> Board?
>>
>> -David
>>
>> On Tue, Mar 22, 2016 at 4:28 AM Subodh Konhor <sko...@gmail.com> wrote:
>>
> Please donot go by the diff size, I am doing some testing as we do post
>>> huge integration's to reviewboard.
>>>
>>> Since we are migrating from 1.0.9 to 2.5.x I am doing some round of
>>> stress testing. I have generated merge diff which is all of type "branch"
>>> category.
>>> The diff size is whooping 359762870
>>>
>>> rbt error I get is
>>> >>> Making HTTP POST request to
>>> http://reviewboard-dev.datadomain.com/review/api/validation/diffs/
>>> >>> Got API Error 224 (HTTP code 400): The specified diff file could not
>>> be parsed.
>>> >>> Error data: {u'stat': u'fail', u'reason': u'need more than 1 value
>>> to unpack', u'err': {u'msg': u'The specified diff file could not be
>>> parsed.', u'code': 224}}
>>> 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 857, in main
>>>     (msg_prefix, e))
>>> rbtools.commands.CommandError: Error validating diff
>>>
>>> The specified diff file could not be parsed. (HTTP 400, API Error 224)
>>>
>>>
>>>
>>> on the reviewboard log I get the error as
>>> DiffParser.parse: Beginning parse of diff, size = 359762870
>>>  2016-03-21 10:00:55,337 - ERROR -  - Unexpected error when validating
>>> diff.
>>> Traceback (most recent call last):
>>>   File
>>> "/usr/local/lib/python2.7/site-packages/reviewboard/webapi/resources/validate_diff.py",
>>> line 156, in create
>>>     save=False)
>>>   File
>>> "/usr/local/lib/python2.7/site-packages/reviewboard/diffviewer/managers.py",
>>> line 417, in create_from_upload
>>>     save=save)
>>>   File
>>> "/usr/local/lib/python2.7/site-packages/reviewboard/diffviewer/managers.py",
>>> line 441, in create_from_data
>>>     check_existence=(not parent_diff_file_contents)))
>>>   File
>>> "/usr/local/lib/python2.7/site-packages/reviewboard/diffviewer/managers.py",
>>> line 562, in _process_files
>>>     copied=f.copied)
>>>   File
>>> "/usr/local/lib/python2.7/site-packages/reviewboard/scmtools/perforce.py",
>>> line 379, in parse_diff_revision
>>>     filename, revision = revision_str.rsplit('#', 1)
>>> ValueError: need more than 1 value to unpack
>>>
>>> For sure the error is not due to unpacking behavior as I broke my
>>> changelist to a 1000 file changelist and posted which went through
>>> smoothly. All the files in this change list are of type branch.
>>>
>>> So what can be the problem here?
>>> 1) Is there a size limitation of rbt post diff that reviewboard is not
>>> able to handle as I can see in reviewboard log the diff is transmitted.
>>> 2) Should I look at apache file upload limits
>>> 3) Should I look into mysql limits.
>>>
>>> Since generating diff on my system takes around 6hrs, I thought of
>>> generating a diff file using the below command so that I can save time on
>>> generating diff in each iteration
>>> rbt diff 1234 > rb1234.diff
>>>
>>> Now if I try to post it as below
>>> rbt post --diff-filename=rb1234.diff
>>>
>>> I get below error
>>> >>> RBTools 0.7.5
>>> >>> Python 2.7.3 (default, Feb 27 2014, 19:58:35)
>>> [GCC 4.6.3]
>>> >>> Running on Linux-3.5.0-39-generic-x86_64-with-Ubuntu-12.04-precise
>>> >>> Home = /auto/home/konhos
>>> >>> Current directory = /home/konhos/p4ws/test_re_reviewboard
>>> >>> Checking for a Perforce repository...
>>> >>> Running: p4 info
>>> >>> Running: diff --version
>>> >>> repository info: Path: p4broker.datadomain.com:1666, Base path:
>>> None, Supports changesets: True
>>> >>> Making HTTP GET request to
>>> http://reviewboard-dev.datadomain.com/review/api/
>>> >>> Making HTTP GET request to
>>> http://reviewboard-dev.datadomain.com/review/api/validation/diffs/
>>> >>> Cached response for HTTP GET
>>> http://reviewboard-dev.datadomain.com/review/api/validation/diffs/
>>> expired and was modified
>>> >>> Making HTTP POST request to
>>> http://reviewboard-dev.datadomain.com/review/api/validation/diffs/
>>> 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 902, in main
>>>     p4_reviewers =
>>> self.tool.get_commit_message(self.revisions)['p4_reviewers']
>>>   File
>>> "/usr/local/lib/python2.7/dist-packages/RBTools-0.7.5-py2.7.egg/rbtools/clients/__init__.py",
>>> line 267, in get_commit_message
>>>     commit_message = self.get_raw_commit_message(revisions)
>>>   File
>>> "/usr/local/lib/python2.7/dist-packages/RBTools-0.7.5-py2.7.egg/rbtools/clients/perforce.py",
>>> line 1322, in get_raw_commit_message
>>>     changelist = revisions['tip']
>>> TypeError: 'NoneType' object has no attribute '__getitem__'
>>>
>>>
>>> Is this the expected behavior?
>>>
>>> Need urgent help as to what could be the problem. Also if somebody can
>>> give me the exact command for posting diff file then that would be of great
>>> help.
>>>
>>> RB on OS: Centos 5
>>> repository type: Perforce
>>>
>>> --
>>> 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 reviewboard...@googlegroups.com.
>>
>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
>> -David
>>
> --
> 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 reviewboard+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
-- 
-David

-- 
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 reviewboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to