------------------------------------------------------------------------------ To reply, visit https://hellosplat.com/s/beanbag/tickets/4572/ ------------------------------------------------------------------------------
New ticket #4572 by ryan.beasley For Beanbag, Inc. > Review Board Status: New Tags: Priority:Medium, Type:Defect ------------------------------------------------------------------------------ X-ReviewBoard-Diff-For headers are incomplete ============================================================================== # What version are you running? 2.0.20 # What's the URL of the page containing the problem? n/a # What steps will reproduce the problem? 1. Post a review where the diff includes plain edits to an existing file (i.e. does not involve creating, copying, or moving). 2. Upon receipt of generated e-mail, examine X-ReviewBoard-Diff-For headers. 3. Observe that X-ReviewBoard-Diff-For headers appear only for files named in the diffset which were created/moved. Edited files are not named. # What is the expected output? What do you see instead? - I expect X-ReviewBoard-Diff-For headers to name every file (up to the 8K limit) edited in a diffset. # What operating system are you using? What browser? - n/a # Please provide any additional information below. If I'm reading the code correctly, this appears to be a bug from the original implementation which continues to the present. Any filediff for which none of `filediff.{deleted,copied,moved,is_new}` applies fails to generate an X-ReviewBoard-Diff-For header. >From release-2.0.20 (reviewboard/notifications/email.py): ``` 601 if latest_diffset: 602 modified_files = set() 603 604 for filediff in latest_diffset.files.all(): 605 if filediff.deleted or filediff.copied or filediff.moved: 606 modified_files.add(filediff.source_file) 607 608 if filediff.is_new or filediff.copied or filediff.moved: 609 modified_files.add(filediff.dest_file) 610 611 for filename in modified_files: 612 headers.appendlist('X-ReviewBoard-Diff-For', filename) ``` And from HEAD (reviewbaord/notifications/email/message.py): ``` 181 182 if latest_diffset: 183 modified_files = set() 184 185 for filediff in latest_diffset.files.all(): 186 if filediff.deleted or filediff.copied or filediff.moved: 187 modified_files.add(filediff.source_file) 188 189 if filediff.is_new or filediff.copied or filediff.moved: 190 modified_files.add(filediff.dest_file) 191 192 # The following code segment deals with the case where the client adds 193 # a significant amount of files with large names. We limit the number 194 # of headers; when more than 8192 characters are reached, we stop 195 # adding filename headers. 196 current_header_length = 0 197 198 for filename in modified_files: ... 212 headers.appendlist('X-ReviewBoard-Diff-For', filename) ``` ------------------------------------------------------------------------------ -- You received this message because you are subscribed to the Google Groups "reviewboard-issues" group. To unsubscribe from this group and stop receiving emails from it, send an email to reviewboard-issues+unsubscr...@googlegroups.com. To post to this group, send email to reviewboard-issues@googlegroups.com. Visit this group at https://groups.google.com/group/reviewboard-issues. For more options, visit https://groups.google.com/d/optout.