3

我的总体目标是能够在工作区中同步、签出和签入文件。这是我感到困惑的主要部分:

IList<FileSpec> files = new List<FileSpec>();
FileSpec file = new FileSpec(testpath, null, locpath, VersionSpec.Head);
files.Add(file);
IList<FileSpec> foundFiles = rep.GetDepotFiles(files, null);

con.Client.SyncFiles(foundFiles, null);

Changelist cl = new Changelist();
cl.Description = "newest change";
cl.ClientId = ws_client;
Changelist changelist = rep.CreateChangelist(cl);

//Added the line below
con.Client.EditFiles(new Options(EditFilesCmdFlags.None, changelist.Id, null), file);

我首先创建了从存储库中获取的 depot 文件列表 (foundFiles),它运行良好。然后我尝试将这些文件同步到客户端。然后我创建了一个更改列表,但我不知道如何编辑文件和提交更改。我知道 Client.EditFiles 和 Changelist.Submit 方法,但我不确定如何在这种情况下使用它们,因为我不完全理解客户端/工作区和变更列表之间的联系。简而言之,我希望能够访问、编辑和提交文件。一个主要问题是我的变更列表中没有文件,我预测知道如何添加文件是第一步。非常感谢任何帮助或示例代码!

4

2 回答 2

1

我知道这个问题已经有 2 年历史了,但是 p4api.net 文档仍然很差,所以任何答案都可能对未来的用户有所帮助。我相信您剩下的问题是您使用版本化文件规范。您的问题应该通过以下最后一行来解决:

        //Added the line below            
        con.Client.EditFiles(new P4.Options(P4.EditFilesCmdFlags.None, changelist.Id, null), P4.FileSpec.UnversionedSpecList(foundFiles).ToArray());
于 2015-02-25T15:53:23.787 回答
0

我对 P4API.NET 没有太多经验,但我认为您需要做的是调用 Client.EditFiles,并使用 options 参数来指定更改列表。不确定您是使用对更改列表对象的引用,还是仅使用更改列表编号。

于 2013-06-26T03:11:00.537 回答