[SCM]源碼管理 - perforce快速入門
Perforce是目前比較流行的集中式的源代碼管理工具,在很多的歐美跨國公司被廣泛的使用。他能夠運行於Windows,Linux,Mac幾乎所有的平臺,支持客戶端,命令行,IDE集成,操作系統shell,API等多種訪問方式。而且他還能夠很好地支持大型規模的軟件公司的員工同時訪問,能夠很好地支持跨國的分佈式團隊的開發。對perforce server的管理也很方便。例如google就在使用perforce來管理源碼。
一 Perforce 客戶端入門
* 客戶端我們可以使用p4命令行,也可以使用基於UI的p4v,同時客戶端還帶有p4merge用來幫助用戶執行diff和merge。
* 客戶端我們還可以使用IDE的plugin來在IDE中方便地執行所有的perforce操作,也可以在我們的自動化腳本中調用基於各種語言的API來執行Perforce操作。
* 基本的登錄信息,p4v中爲server,user,workspace,server表示p4server的地址,user表示user id,workspace表示server與本地的目錄的映射關係,在p4命令中,對應的環境變量爲p4server,p4user,p4client。
* client表示server與本地的目錄的映射,在p4v中爲new workspaces... , 對應的p4的命令爲p4 client。
* 增加文件在p4v中爲mark for add,對應的p4命令爲p4 add。
* 刪除文件在p4v中爲mark for delete,對應的p4命令爲p4 delete。
* 修改文件在p4v中爲check out,對應的p4命令爲p4 edit。
* 提交修改在p4v中爲submit,對應的p4命令爲p4 submit。
* 同步最新的代碼到本地在p4v中爲get latest reversion / get reversion ... ,對應的p4命令爲p4 sync。
* 每次提交都會對應一個change list,用來唯一標識一次提交。
* 在提交前撤銷修改,p4v中爲revert unchanged files / revert files ...,對應的p4的命令爲p4 revert。
* 在提交後撤銷, p4v中爲Rollback... ,對應的p4命令其實就是p4 sync + p4 submit。
* 要查看文件或文件夾的版本,在p4v中爲file history / folder history, 對應的p4的命令爲p4 filelog。
* 要修改文件或移動文件目錄,在p4v中爲rename / move ..., 對應的p4的命令爲p4 move。
* 創建branch需要在p4v中new branch mapping + integrate using branch maping ...,對應的p4命令爲p4 branch + p4 integrate。
* merge,在p4v中爲resolve files,對應的p4的命令爲p4 resolve。
* p4的命令p4 copy,其實是等於p4 integrate + p4 resolve -at。
* 創建label需要在p4v中new label... + label...,對應的p4命令爲p4 label + p4 tag。
* 比較client的最新與本地的不同,p4v中爲diff against havereversion。 對應的p4的命令爲p4 diff。
* 比較任意的兩個文件的不同個,p4v中爲diff against... ,對應的p4的命令爲p4 diff2。
* 查看目錄下的文件,p4v中爲files in folder,對應的p4的命令爲p4 files。
* p4命令p4 info 或 p4 set查看當前的p4 server的和當前client的信息。
* 查看文件的內容對應的p4命令爲p4 print。
* p4命令p4 where用來查看一個文件在server,client和本地的路徑。
二 Perforce server入門
* Server的運行程序爲p4d(如果作爲service運行,需要改爲p4s)。
* 爲了支持分佈式團隊的開發,需要使用proxy,proxy的運行程序爲p4p(如果作爲service運行,需要改爲p4ps)。
* 可以使用p4server自帶的svcinst來在windows上同時部署多個server或proxy。
* p4server在linux上可以部署爲daemon(service),或者也可以部署爲xinetd的服務來運行。
* 對server的管理可以使用p4admin的UI的工具來完成, 或者使用p4 命令 p4 user + p4 group + p4 protect來進行權限的管理,使用p4 monitor來監視server。
* 使用p4d命令p4d -jc / jr來備份和恢復server。
* 也可以使用p4的命令p4 admin來進行部分的管理,例如停止server,備份server。
* 可以使用p4的命令p4 replicate 或 p4 pull來創建 replicated server,作爲熱備份server用來實現災難恢復,或者作爲offline server用來減少備份時mainserver的停機時間。
* replicated server + p4broker來實現 p4server的高可用性,或作爲readonly server來減少mainserver的負載。