3418: rbt post for perforce changelist on windows fails when files are located on different drive than rbt.exe

Alex*****@gmai***** (Google Code) (Is this you? Claim this profile.)
What version are you running?
Review Board Tools 0.6

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

What steps will reproduce the problem?
1. Install Python and rbt on C drive of windows machine
2. From P4V, create workspace mapped to E: drive
3. use rbt post to attempt to request a code review

What is the expected output? What do you see instead?
Expected:
 - to be able to create a review request as one would for perforce workspaces on the C drive

Instead:
 - got "System cannot find the path specified" error; could not make review request


What operating system are you using? What browser?
Windows 8 (browser NA)


Please provide any additional information below.

When I created a workspace mapped to the C drive, it worked as it should. 
When I moved rbt.exe to the E drive and attempted to request a code review with rbt post for a workspace whos files are on the E drive, and that worked as it should. 

the problem arises when the drive of the location of the files being diff-ed is different than the drive of rbt.exe

I think that the perforce component or rbt uses p4 describe to get the list of affected files. I checked the output of 'p4 describe <changelist number> and it does not include the drive. This would explain why the system gives the error that it cannot find the specified path - if it assumes the same drive as rbt.exe, and that's the wrong drive, the files won't exist. 

My workaround is to use a wrapper script for rbt. We configure the drive letter of the workspace mapping once, and the wrapper script copies rbt.exe and the other dependancies from \Python27\Scripts onto the workspace drive. Then it executes rbt.exe from that drive. 

This isn't idea because it means there is a copy of rbt.exe on potentially many drives, and of course that the wrapper script has to be used instead of rbt.exe itself.
david
#1 david
  • +Component-RBTools
david
#2 david
  • -reviewboard
    +rbtools