Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 1340 by lucray.lemaire: Patch fails to generate diff on server  
when the source file does not end with newline char
http://code.google.com/p/reviewboard/issues/detail?id=1340

*NOTE: Do not post confidential information in this bug report.*

What version are you running?
1.0.3 with RBTools 0.2 beta2

What's the URL of the page containing the problem?


What steps will reproduce the problem?
1. Create a file which ends with e.g. '}' instead of an empty line
2. Create the review with post-review (we use perforce)
3.

What is the expected output? What do you see instead?
The diff contains something similar to this:

}--- //depot/
+++ //depot/

Patch misses the new file and puts the whole line inside the previous diff.
Adding a newline char before the diff file like this does not solve the
issue completely since the newline char is not in the depot file.

}
--- //depot/
+++ //depot/


What operating system are you using? What browser?


Please provide any additional information below.
Here is the call stack:

Diff currently unavailable.
Error: The patch to '//depot/*' didn't apply cleanly. The temporary files
have been left in '/tmp/reviewboard.Svq_sy' for debugging purposes. `patch`
returned: patching file /tmp/reviewboard.Svq_sy/tmpgqqll5 Hunk #3 FAILED at
32. 1 out of 3 hunks FAILED -- saving rejects to file
/tmp/reviewboard.Svq_sy/tmpgqqll5-new.rej
Details

Traceback (most recent call last):
   File
"/usr/lib/python2.5/site-packages/ReviewBoard-1.0.3.1-py2.5.egg/reviewboard/diffviewer/views.py",
line 213, in view_diff_fragment
     file = get_requested_diff_file()
   File
"/usr/lib/python2.5/site-packages/ReviewBoard-1.0.3.1-py2.5.egg/reviewboard/diffviewer/views.py",
line 189, in get_requested_diff_file
     get_chunks)
   File
"/usr/lib/python2.5/site-packages/ReviewBoard-1.0.3.1-py2.5.egg/reviewboard/diffviewer/diffutils.py",
line 623, in get_diff_files
     large_data=True)
   File
"/usr/lib/python2.5/site-packages/Djblets-0.5.3-py2.5.egg/djblets/util/misc.py",
line 162, in cache_memoize
     data = lookup_callable()
   File
"/usr/lib/python2.5/site-packages/ReviewBoard-1.0.3.1-py2.5.egg/reviewboard/diffviewer/diffutils.py",
line 622, in <lambda>
     enable_syntax_highlighting),
   File
"/usr/lib/python2.5/site-packages/ReviewBoard-1.0.3.1-py2.5.egg/reviewboard/diffviewer/diffutils.py",
line 345, in get_chunks
     new = get_patched_file(old, filediff)
   File
"/usr/lib/python2.5/site-packages/ReviewBoard-1.0.3.1-py2.5.egg/reviewboard/diffviewer/diffutils.py",
line 261, in get_patched_file
     return patch(filediff.diff, buffer, filediff.dest_file)
   File
"/usr/lib/python2.5/site-packages/ReviewBoard-1.0.3.1-py2.5.egg/reviewboard/diffviewer/diffutils.py",
line 129, in patch
     (filename, tempdir, patch_output))
Exception: The patch to '//depot/*' didn't apply cleanly. The temporary
files have been left in '/tmp/reviewboard.Svq_sy' for debugging purposes.
`patch` returned: patching file /tmp/reviewboard.Svq_sy/tmpgqqll5
Hunk #3 FAILED at 32.
1 out of 3 hunks FAILED -- saving rejects to file
/tmp/reviewboard.Svq_sy/tmpgqqll5-new.rej



--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"reviewboard-issues" group.
To post to this group, send email to reviewboard-issues@googlegroups.com
To unsubscribe from this group, send email to 
reviewboard-issues+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/reviewboard-issues?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to