问题
I'd like to know how to convert Perforce depot locations to client view locations for the purpose of script writing.
I have a script that first checks out a file for edit in perforce and then interacts with the file. I need to have the depot location (i.e. \Projects\Project6) converted to the client view location. (i.e. d:\Projects\Project6).
Is this possible?
回答1:
I have always used the p4 where command for this. Here is its description from the built-in help:
where -- Show how file names map through the client view p4 where [ file ... ] Where shows how the named files map through the client view. For each argument, three names are produced: the name in the depot, the name on the client in Perforce syntax, and the name on the client in local syntax. If no file is given, the mapping for '...' (all files in the current directory and below) is shown. Note that 'p4 where' does not determine where any real files are. It only computes where they should be according to the client view.
回答2:
I would use the p4 fstat command. I find its format slightly easier to parse than p4 have. Additionally if you are scripting this in python you can use the -G option to have the the return values marshalled as python dictionaries.
It is also useful to note that you can type p4 help commands to see a list of the commands and a short description of what they do.
回答3:
Check out the p4 have
command. You give it either a depot location or a client filename and it gives you the depot location, client filename, and what version of that file you have.
来源:https://stackoverflow.com/questions/300692/how-to-convert-perforce-depot-locations-to-client-view-locations