668: View Diff reports FileNotFound due to incorrect revision

peter.*******@oldroadcom********** (Google Code) (Is this you? Claim this profile.)
Dec. 28, 2008
What's the URL of the page containing the problem?


What steps will reproduce the problem?
1. Create a patch file
2. Create a review request
3. Select View Diff

What is the expected output? What do you see instead?
When I select 'View Diff' for a patch file that was created by TortoiseSVN
V1.5.3 running on Windows 2003, I see the following error:

The file 'management/trunk/Mgmt
Api//src/com/vc/nt/mgmt/vmmgr/script/control/client/startup1.cmd' (r1164)
could not be found in the repository: PROPFIND request failed on
'/repos/nt/!svn/bc/1164/management/trunk/Mgmt%20Api/src/com/vc/nt/mgmt/vmmgr/script/control/client/startup1.cmd'
'/repos/nt/!svn/bc/1164/management/trunk/Mgmt%20Api/src/com/vc/nt/mgmt/vmmgr/script/control/client/startup1.cmd'
path not found

Traceback (most recent call last):
  File "/opt/reviewboard/diffviewer/views.py", line 82, in view_diff
    files = get_diff_files(diffset, None, interdiffset, highlighting)
  File "/opt/reviewboard/diffviewer/diffutils.py", line 594, in get_diff_files
    enable_syntax_highlighting)
  File "/opt/reviewboard/diffviewer/diffutils.py", line 513, in generate_files
    lambda: get_chunks(filediff.diffset,
  File "/opt/reviewboard/djblets/util/misc.py", line 47, in cache_memoize
    data = lookup_callable()
  File "/opt/reviewboard/diffviewer/diffutils.py", line 516, in <lambda>
    enable_syntax_highlighting))
  File "/opt/reviewboard/diffviewer/diffutils.py", line 316, in get_chunks
    old = get_original_file(filediff)
  File "/opt/reviewboard/diffviewer/diffutils.py", line 223, in
get_original_file
    data = cache_memoize(key, lambda: [tool.get_file(file, revision)])[0]
  File "/opt/reviewboard/djblets/util/misc.py", line 47, in cache_memoize
    data = lookup_callable()
  File "/opt/reviewboard/diffviewer/diffutils.py", line 223, in <lambda>
    data = cache_memoize(key, lambda: [tool.get_file(file, revision)])[0]
  File "/opt/reviewboard/scmtools/svn.py", line 106, in get_file
    raise FileNotFoundError(path, revision, str(e))
FileNotFoundError: The file 'management/trunk/Mgmt
Api//src/com/vc/nt/mgmt/vmmgr/script/control/client/startup1.cmd' (r1164)
could not be found in the repository: PROPFIND request failed on
'/repos/nt/!svn/bc/1164/management/trunk/Mgmt%20Api/src/com/vc/nt/mgmt/vmmgr/script/control/client/startup1.cmd'
'/repos/nt/!svn/bc/1164/management/trunk/Mgmt%20Api/src/com/vc/nt/mgmt/vmmgr/script/control/client/startup1.cmd'
path not found


What operating system are you using? What browser?
Windows 2003
IE 7.0.5730.13

Please provide any additional information below.
 The file in question (startup1.cmd) is at R1162 - tho the repository is at
R1164, which is the version in the error message.
chipx86
#1 chipx86
Have you tried this using post-review? Does it still fail? We recently fixed an issue
like this in post-review.
#2 peter.*******@oldroadcom********** (Google Code) (Is this you? Claim this profile.)
Thanks for the reply - but I don't know what post-review is....
Is it a separate tool from reviewboard, or an option within reviewboard?
I'm obviously a reviewboard newbie....

Thanks for any info,
david
#3 david
It's a command-line tool (shipped with reviewboard in the contrib/tools directory)
for creating review requests. It dramatically simplifies the process over using the
web UI.

Sounds like it's probably not that bug, though.
david
#4 david
It looks like TortoiseSVN is creating a diff with paths that are url-encoded, which
is causing problems when we then re-encode it inside the SCMTool. Please use either
"svn diff" or post-review.
  • +ThirdParty