2013-06-25 44 views
3

我的總體目標是能夠在工作區中同步,檢出和檢入文件。這是我感到困惑的主要部分:使用p4 api .NET將文件添加到更改列表

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); 

我首先創建的庫文件(foundFiles),我從存儲庫,它工作正常獲取列表。然後我嘗試將這些文件同步到客戶端。然後我創建一個Changelist,但我不知道如何去編輯文件和提交更改。我知道Client.EditFiles和Changelist.Submit方法,但我不確定如何在這種情況下使用它們,因爲我沒有完全理解客戶端/工作區和更改列表之間的關聯。總之,我希望能夠訪問,編輯和提交文件。一個主要的問題是我的Changelist裏沒有文件,我預測知道如何添加文件是第一步。任何幫助或示例代碼非常感謝!

回答

0

我沒有很多P4API.NET的經驗,但我認爲你需要做的是調用Client.EditFiles,並使用options參數來指定更改列表。不知道您是否使用對變更列表對象的引用,或只是使用變更列表編號。

+0

好了,所以我增加了Client.EditFiles我的代碼,如上圖所示,我現在得到一個錯誤:「A修正規格(#或@)不能使用這裏。」有任何想法嗎? – JuiceZBox

+0

我的很多文件都有#號,這可能是問題所在。我沒有管轄權來改變這些,所以如果有人有想法,我正在尋找解決辦法。 – JuiceZBox

+0

這些文件是否已經在Perforce軟件倉庫中? –

0

我知道問題是2歲,但p4api.net文檔仍然很差,所以任何答案可能有助於未來的用戶。 我相信你剩下的問題是你使用版本化的文件規格。你的問題應該按照最後一行來解決:

 //Added the line below    
     con.Client.EditFiles(new P4.Options(P4.EditFilesCmdFlags.None, changelist.Id, null), P4.FileSpec.UnversionedSpecList(foundFiles).ToArray()); 
相關問題