Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Performce.net API同步站点文件_C#_Perforce_P4.net - Fatal编程技术网

C# Performce.net API同步站点文件

C# Performce.net API同步站点文件,c#,perforce,p4.net,C#,Perforce,P4.net,因为我很难理解P4API文档,所以我需要帮助。我在仓库里有一个文件夹,比如说//root/a/。。。首先,我运行一个预览,以了解变更列表上要同步的文件数,比如123 在rFiles中,我应该获得将要同步的文件列表同步预览,我将在后台工作程序中同步每个文件,但它会返回//root中的所有仓库文件 有人能帮忙吗? 当您执行以下操作时,请注意: Client.ViewMap = new ViewMap(); Client.ViewMap.Add("//root/a/...", "//" + myWrk

因为我很难理解P4API文档,所以我需要帮助。我在仓库里有一个文件夹,比如说//root/a/。。。首先,我运行一个预览,以了解变更列表上要同步的文件数,比如123

在rFiles中,我应该获得将要同步的文件列表同步预览,我将在后台工作程序中同步每个文件,但它会返回//root中的所有仓库文件

有人能帮忙吗? 当您执行以下操作时,请注意:

Client.ViewMap = new ViewMap();
Client.ViewMap.Add("//root/a/...", "//" + myWrkSpace + "/a/...", MapType.Include);
您只是在程序的客户机对象中本地设置一些数据,而不是在服务器上

服务器运行时:

rFiles = rep.Connection.Client.SyncFiles(sFlags, null);
它使用存储在服务器上的视图映射

如果从CMD.EXE提示符运行,并使用工作区的真实名称:

p4 client -o myWrkSpace
您将在服务器上看到工作区的实际视图映射

我打赌你会看到它是:

//root/... //myWrkSpace/...
这就是为什么要同步所有仓库文件的原因

因此,如果您想更改视图映射,您必须做的不仅仅是在本地设置它,还必须在运行同步之前更新服务器上的工作区定义

有一件事可以帮助您调试这些东西,那就是充分熟悉p4命令行工具,使您能够从CMD.EXE提示符运行命令,例如:

p4 sync -n @123
我认为这是您试图从API程序运行的命令

然后可以从命令行查看该命令的工作方式,然后可以查看服务器的日志,查看API程序发出的实际命令,并将这些命令与从命令行运行的命令进行比较

p4 sync -n @123