1360: Can not see diff when the diff was uploaded with parent option on post-review

TAKAHASHI**********@gmai***** (Google Code) (Is this you? Claim this profile.)
Jan. 4, 2010
What version are you running?
ReviewBoard 1.0.4, RBTools Beta2

What's the URL of the page containing the problem?
r/xxx/diff/#index_header

What steps will reproduce the problem?
1. "post-review --parent=topicA --summary=testA" on topicB (branch of topicA).
2. goto the page above.

What is the expected output? What do you see instead?
expected: could see diff.
got: 
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/ReviewBoard-1.0.4-
py2.4.egg/reviewboard/diffviewer/views.py", line 153, in view_diff
    interdiffset, highlighting, True)
  File "/usr/lib/python2.4/site-packages/ReviewBoard-1.0.4-
py2.4.egg/reviewboard/diffviewer/diffutils.py", line 623, in get_diff_files
    large_data=True)
  File "/usr/lib/python2.4/site-packages/Djblets-0.5.4-py2.4.egg/djblets/util/misc.py", line 
162, in cache_memoize
    data = lookup_callable()
  File "/usr/lib/python2.4/site-packages/ReviewBoard-1.0.4-
py2.4.egg/reviewboard/diffviewer/diffutils.py", line 622, in <lambda>
    enable_syntax_highlighting),
  File "/usr/lib/python2.4/site-packages/ReviewBoard-1.0.4-
py2.4.egg/reviewboard/diffviewer/diffutils.py", line 345, in get_chunks
    new = get_patched_file(old, filediff)
  File "/usr/lib/python2.4/site-packages/ReviewBoard-1.0.4-
py2.4.egg/reviewboard/diffviewer/diffutils.py", line 261, in get_patched_file
    return patch(filediff.diff, buffer, filediff.dest_file)
  File "/usr/lib/python2.4/site-packages/ReviewBoard-1.0.4-
py2.4.egg/reviewboard/diffviewer/diffutils.py", line 126, in patch
    raise Exception(_("The patch to '%s' didn't apply cleanly. The temporary " +
Exception: The patch to 'adm/Rakefile' didn't apply cleanly. The temporary files have been left in 
'/tmp/reviewboard.xXkaH8' for debugging purposes.
`patch` returned: patching file /tmp/reviewboard.xXkaH8/tmpydvPxC
Reversed (or previously applied) patch detected!  Assume -R? [n] 
Apply anyway? [n] 
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file /tmp/reviewboard.xXkaH8/tmpydvPxC-new.rej


What operating system are you using? What browser?
OS: Cent OS 5.2
Browser: Safari 4.0.3

Please provide any additional information below.
I've added "-t" option at diffutils.py as below. and it works.
Here it is...

--- /usr/lib/python2.4/site-packages/ReviewBoard-1.0.4-
py2.4.egg/reviewboard/diffviewer/diffutils-old.py	2009-10-20 19:08:10.000000000 +0900
+++ /usr/lib/python2.4/site-packages/ReviewBoard-1.0.4-
py2.4.egg/reviewboard/diffviewer/diffutils.py	2009-10-20 19:08:27.000000000 +0900
@@ -104,7 +104,7 @@
 
     # XXX: catch exception if Popen fails?
     newfile = '%s-new' % oldfile
-    p = subprocess.Popen(['patch', '-o', newfile, oldfile],
+    p = subprocess.Popen(['patch', '-t', '-o', newfile, oldfile],
                          stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                          stderr=subprocess.STDOUT)
     p.stdin.write(diff)
#1 owen.y*******@gmai***** (Google Code) (Is this you? Claim this profile.)
The -t option doesn't actually do the right thing - you should get a reversed diff
with that flag on.

The problem seems to be that the file RB is trying to patch has already been patched.
"Previously applied patch detected" is correct.
david
#2 david
Sounds to me like the parent diff and child diff weren't created correctly.
  • +UserError