正在尝试使用p4api.net方法中的-a选项还原更改列表中的文件。它曾经为我工作,但现在我得到了以下消息的异常。
此外,p4 edit和p4 revert with -c选项运行良好,但p4 revert with -a option抛出以下异常。我不知道为什么它在p4工作区位置的测试项目位置下面选择。
例外:
路径'd:\cftt\Dev\source\BRF\BRF.Business.Test\bin\Debug\19402547‘不在客户端的根目录'D:\p4’下。
// to open files for edit in a given changelist at certain loc with particular file format
public IList<FileSpec> EditChangeList(string clNumber, string fileFormat, string destinationPath)
{
try
{
var rep = Connect();
var opts = new Options(ChangeCmdFlags.None, ChangeListType.None);
opts["-c"] = clNumber;
var fs = new FileSpec(new DepotPath(destinationPath + "/..." + fileFormat));
IList<FileSpec> editedFileSpec = rep.Connection.Client.EditFiles(new List<FileSpec> {fs}, opts);
return editedFileSpec;
}
catch (Exception exc)
{
Logger.LogError(exc.Message);
throw;
}
}
// to revert files in a changelist that are unchanged using -a option
public IList<FileSpec> RevertChangeList(string clNumber, string destinationPath)
{
try
{
var rep = Connect();
var opts = new Options(ChangeCmdFlags.None, ChangeListType.None);
opts["-a"] = clNumber;
var fs = new FileSpec(new DepotPath(destinationPath + "/..."));
IList<FileSpec> revertedFiles = rep.Connection.Client.RevertFiles(new List<FileSpec> {fs}, opts);
return revertedFiles;
}
catch (Exception exc)
{
Logger.LogError(exc.Message);
throw;
}
}发布于 2015-03-15 23:55:51
revert命令接受几种不同类型的标志和参数:
之后指定为参数
在您的命令中,您运行:
p4 revert -a 19402547 d:\p4\sw\dev\gpu_drv\chips_a\diag\mods\sim\resources/...由于-a标志不接受值,因此revert命令将其视为:
d:\p4\sw\dev\gpu_drv\chips_a\diag\mods\sim\resources/...
由于文件参数19402547前面没有目录名,所以还原命令将其解释为相对于当前目录的相对文件名,并查找名为'd:\cftt\Dev\source\BRF\BRF.Business.Test\bin\Debug\19402547‘的文件,该文件确实不在客户端的根目录下,因此不是Perforce能够还原的文件。
这里的正确方法是完全忽略更改列表编号,或者将其指定为-c标志的值,这取决于您是希望恢复sim\resources目录中所有打开的文件,还是只希望恢复该目录中在更改列表19402547中打开的那些打开的文件。
也就是说,两者都是:
p4 revert -a d:\p4\sw\dev\gpu_drv\chips_a\diag\mods\sim\resources/...和
p4 revert -a -c 19402547 d:\p4\sw\dev\gpu_drv\chips_a\diag\mods\sim\resources/...都是合理的命令,选择正确的命令完全取决于您想要的行为。
https://stackoverflow.com/questions/29050111
复制相似问题