以下的操作基于P4V。
1 p4 refresh all
某些情況下某些修改不能實時地在p4v中跟新,此時可以使用p4v refresh all。
還可以在任意的item上右鍵中找到refresh相關的操作。例如本地目錄下删除或增加檔案,在p4v中不能的及時反映,這個時候可以在 workspace中的目錄中右鍵中點選refresh相關選項。當然其他的changelist,client,depot等也都有相應的 refreash。
操作: view->refreash all
2 p4 rollback
用來将已經送出的修改撤銷,或者恢複到某個之前的changelist。
如果是沒有送出的修改(即在本地的pending changelist),使用revert unchanged files或revert files。
操作:例如如下将//depot/projectB恢複到version(changelist)14,在//depot/projectB上右鍵然後點選rollback,在rollback的dialog上設定changelist為14,然後直接submit。
3 p4 shelve
shelve是p4 2009後的新功能。需要p4 server和p4 client同時支援。
shelve操作用來臨時存儲正在進行的工作到perforce server,但是沒有submit一個changelist。
shelve的用處:
當你在一些檔案上同時進行多個開發任務(例如必須先處理優先級更高的工作,或必須在送出前到其他的平台測試)。
或者用來在送出前developers間的code review。
p4 shelve 相當于将你的修改零時的挂載到p4 server的架子上。
p4 unshelve相當于将修改從p4 server的架子上覆寫到本地的workspace,且加到pending changelist。
操作:
1)BBB使用者要shelve檔案//depot/projectB/file2.txt, 在檔案//depot/projectB/file2.txt上右鍵然後點選shelve。如下圖:
2) BBB使用者shelve檔案//depot/projectB/file2.txt後如下圖:
3) 使用另一個使用者AAA登入後如下,AAA不一定使用與BBB相同的workspace(client)。如下圖:
4) 在AAA使用者下切換到BBB使用者下檢視BBB使用者的shelve,此時可以使用diff against 或者直接打開檔案來review BBB使用者的修改,相當于是code review。
或者使用unshelve來将BBB使用者的修改應用到AAA使用者的workspace,且加到AAA的pending changelist中。
5)在AAA使用者登入後切換到BBB使用者時,使用unshelve過程操作如下:
6)可以看到AAA使用者對BBB的shelve進行unshelve後,BBB的修改被加到AAA的default changelist中,如下:
4 p4 lock/unlock
對本地pending changelist中的檔案進行lock,進而達到當自己checkout修改某些檔案時不允許其他的人修改相同的檔案,直到自己unlock或submit後别人才可以修改。
我們知道p4是基于merge機制的源碼管理,p4 lock指令相當于以前的基于lock機制的源碼管理工具。
操作:在某個pending changelist或某些被checkout的檔案上右鍵中選擇lock或unlock。
5 p4 rename/move
直接修改perforce server上某個檔案的名字或将檔案移動目錄。相當于自己使用delete+add+submit的操作。
6 檢視指定的changelist,操作為ctrl+G
完!
作者:iTech
微信公衆号: cicdops
github:https://github.com/cicdops/cicdops