1589: Review board doesn't display diffs which contain deleted files properly for Mercurial

s.a.gr*******@gmai***** (Google Code) (Is this you? Claim this profile.)
May 18, 2010
What version are you running?
1.0.5.1

What's the URL of the page containing the problem?
private corporate installation

What steps will reproduce the problem?
1. Setup Mercurial repository
2. Delete a file in Mercurial and commit
3. Create a diff for the last commit
4. Upload to Review Board

What is the expected output? What do you see instead?

For every deleted file I see an error, while modified files are displayed
correctly.

The patch to
'java-tools/net/worldticket/tools/db/patches/patch_3_02_23/AddDefaultReportPriorityToRoleTable.java'
didn't apply cleanly. The temporary files have been left in
'/tmp/reviewboard.kGrART' for debugging purposes. `patch` returned:
patching file /tmp/reviewboard.kGrART/tmpOrshxv 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.kGrART/tmpOrshxv-new.rej

Traceback (most recent call last):
  File
"/usr/lib64/python2.6/site-packages/ReviewBoard-1.0.5.1-py2.6.egg/reviewboard/diffviewer/views.py",
line 153, in view_diff
    interdiffset, highlighting, True)
  File
"/usr/lib64/python2.6/site-packages/ReviewBoard-1.0.5.1-py2.6.egg/reviewboard/diffviewer/diffutils.py",
line 623, in get_diff_files
    large_data=True)
  File
"/usr/lib64/python2.6/site-packages/Djblets-0.5.6-py2.6.egg/djblets/util/misc.py",
line 162, in cache_memoize
    data = lookup_callable()
  File
"/usr/lib64/python2.6/site-packages/ReviewBoard-1.0.5.1-py2.6.egg/reviewboard/diffviewer/diffutils.py",
line 622, in <lambda>
    enable_syntax_highlighting),
  File
"/usr/lib64/python2.6/site-packages/ReviewBoard-1.0.5.1-py2.6.egg/reviewboard/diffviewer/diffutils.py",
line 345, in get_chunks
    new = get_patched_file(old, filediff)
  File
"/usr/lib64/python2.6/site-packages/ReviewBoard-1.0.5.1-py2.6.egg/reviewboard/diffviewer/diffutils.py",
line 261, in get_patched_file
    return patch(filediff.diff, buffer, filediff.dest_file)
  File
"/usr/lib64/python2.6/site-packages/ReviewBoard-1.0.5.1-py2.6.egg/reviewboard/diffviewer/diffutils.py",
line 129, in patch
    (filename, tempdir, patch_output))
Exception: The patch to
'java-tools/net/worldticket/tools/db/patches/patch_3_02_23/AddDefaultReportPriorityToRoleTable.java'
didn't apply cleanly. The temporary files have been left in
'/tmp/reviewboard.kGrART' for debugging purposes.
`patch` returned: patching file /tmp/reviewboard.kGrART/tmpOrshxv
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.kGrART/tmpOrshxv-new.r



What operating system are you using? What browser?
Ubuntu 9.10, Firefox 3.5.8
#1 s.a.gr*******@gmai***** (Google Code) (Is this you? Claim this profile.)
When I upgraded to ReviewBoard version 1.0.7 on Ubuntu 9.10, the problem disappeared.
chipx86
#2 chipx86
  • +Fixed
#3 s.a.gr*******@gmai***** (Google Code) (Is this you? Claim this profile.)
The problem was that "hg keywords" extension was enabled globally in /etc/mercurial/hgrc file, and RB could not apply the patch properly. Solution is to disable hg keywords extension.