847: Interdiff not generated properly where updated diff includes new file

ch***@orr.***** (Google Code) (Is this you? Claim this profile.)
chipx86
chipx86
Feb. 26, 2009
What's the URL of the page containing the problem?
http://reviewboard/r/1/diff/1-2/


What steps will reproduce the problem?
1. Edit an existing repo file (called 'rusty'), diff repo, create review
2. `svn add` a new file ('shiny'), diff repo, update existing review
3. View interdiff


What is the expected output? What do you see instead?
* Viewing d1 correctly loads the diff fragment for the file 'rusty'
* Viewing d2 correctly loads a fragment for the new file 'shiny' on top and
shows the existing changes to 'rusty' as in d1, below
* Viewing the interdiff 1-2 incorrectly shows 'rusty' in "Files Changed"
** The only change between the diffs should be the newly-added 'shiny'.
* Furthermore, the 'rusty' diff fragment gives the error:
"Diff currently unavailable.
Error: Internal error. Unable to locate file record for filediff 1"

The URL for the single diff fragment that gets loaded is:
http://reviewboard/r/1/diff/1-2/fragment/1/?index=0&1233643340


What operating system are you using? What browser?
* Clean install of ReviewBoard-1.0alpha2.dev_20090203-py2.5
* Ubuntu 8.04 JeOS
* Firefox 3.0.6


I'm not sure about this, but diffutils.get_diff_files may somehow be
outputting the wrong list of files for the given diffset, interdiffset and
filediff.

Anyway, I reproduced this using a tiny test SVN repo and can provide a dump
plus the original diff files if they'd be of use.
chipx86
#1 chipx86
This should now be fixed in r1801. Please check tomorrow's nightly and see if this is
working right for you now.
  • +Fixed
  • -Priority-Medium
    +Priority-Critical
    +Milestone-Release1.0
    +Component-DiffViewer
  • +chipx86
#2 ch***@orr.***** (Google Code) (Is this you? Claim this profile.)
Excellent. Though it doesn't look like nightlies have been generated (for ReviewBoard
at least) for the past couple of nights.
chipx86
#3 chipx86
Yeah. Looks like I'm not being notified of build breakages either. Looking into this...