1127: post-review creates '\' in diff pathname and it failed view diff on unix repository

ff**@datasyn******** (Google Code) (Is this you? Claim this profile.)
Feb. 13, 2012
What version are you running?
1.0rc2

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

What steps will reproduce the problem?
1. start reviewboard server on linux, svn server on linux
2. on windows, run post-review with --revision-range option to submit new 
review request.
3. can't view diff on the new review request as there is a '\' in the file 
path. 


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


What operating system are you using? What browser?


Please provide any additional information below.

Here is the traceback:
Traceback (most recent call last):
  File "/usr/local/lib/python2.6/site-packages/ReviewBoard-1.0rc2-
py2.6.egg/reviewboard/diffviewer/views.py", line 152, in view_diff
    interdiffset, highlighting, True)
  File "/usr/local/lib/python2.6/site-packages/ReviewBoard-1.0rc2-
py2.6.egg/reviewboard/diffviewer/diffutils.py", line 620, in get_diff_files
    large_data=True)
  File "/usr/local/lib/python2.6/site-packages/Djblets-0.5rc1-
py2.6.egg/djblets/util/misc.py", line 143, in cache_memoize
    data = lookup_callable()
  File "/usr/local/lib/python2.6/site-packages/ReviewBoard-1.0rc2-
py2.6.egg/reviewboard/diffviewer/diffutils.py", line 619, in <lambda>
    enable_syntax_highlighting),
  File "/usr/local/lib/python2.6/site-packages/ReviewBoard-1.0rc2-
py2.6.egg/reviewboard/diffviewer/diffutils.py", line 341, in get_chunks
    old = get_original_file(filediff)
  File "/usr/local/lib/python2.6/site-packages/ReviewBoard-1.0rc2-
py2.6.egg/reviewboard/diffviewer/diffutils.py", line 248, in 
get_original_file
    large_data=True)[0]
  File "/usr/local/lib/python2.6/site-packages/Djblets-0.5rc1-
py2.6.egg/djblets/util/misc.py", line 143, in cache_memoize
    data = lookup_callable()
  File "/usr/local/lib/python2.6/site-packages/ReviewBoard-1.0rc2-
py2.6.egg/reviewboard/diffviewer/diffutils.py", line 247, in <lambda>
    data = cache_memoize(key, lambda: [fetch_file(file, revision)],
  File "/usr/local/lib/python2.6/site-packages/ReviewBoard-1.0rc2-
py2.6.egg/reviewboard/diffviewer/diffutils.py", line 227, in fetch_file
    data = tool.get_file(file, revision)
  File "/usr/local/lib/python2.6/site-packages/ReviewBoard-1.0rc2-
py2.6.egg/reviewboard/scmtools/svn.py", line 107, in get_file
    raise FileNotFoundError(path, revision, str(e))
FileNotFoundError: The 
file '/modules/commons/branches/R5_0_BRANCH\source/java/com/datasynapse/com
mons/serialization/document/DocumentSerializer.java' (r138) could not be 
found in the repository: '/svn/srcrepos/!
svn/bc/138/modules/commons/branches/R5_0_BRANCH%
5Csource/java/com/datasynapse/commons/serialization/document/DocumentSerial
izer.java' path not found

Here is the command I ran on windows:
C:\>c:\python25\python.exe c:\python25\scripts\post-review.py --server 
http://ffanix:9000 --repository-url 
http://ffanix:8080/svn/srcrepos/modules/commons/branches/R5_0_BRANCH/ --
revision-range=138:139
==> Review Board Login Required
Enter username and password for Review Board at http://ffanix:9000/
Username: ffan
Password:
Review request #6 posted.

http://ffanix:9000/r/6

I used GUNwin32 DiffUtils-2.8.7 on Windows side.
chipx86
#1 chipx86
If you do 'svn diff', do you see the same issue with the path names?
  • +NeedInfo
#2 ff**@datasyn******** (Google Code) (Is this you? Claim this profile.)
my svn 1.5.5 shows all '/' in the file path; i think left part of the path  
before '\' maybe added by post-review, as that's the svn repository path of my 
current working copy directory, it's not showed up in the svn diff output.  
david
#3 david
  • -NeedInfo
    +New
david
#4 david
  • +Component-RBTools
david
#5 david
I haven't seen this in a very long time.
  • -New
    +Fixed