Perforce的各種命令

2021-08-23 13:30:40 字數 1554 閱讀 5563

在以前的公司**控制用的是cvs,到這家公司用的是perforce,中國恐怕沒有幾家公司用這個玩意,老美的愛好,又或者是expedia那幫ms出身的愛好。

今天對於perforce的命令列稍做了些研究,主要用到了以下這些常用的命令:

[color=blue]p4 user

p4 client

p4 add, p4 edit, p4 open

p4 submit

p4 revert

p4 integrate

p4 resolve[/color] 等等.

重點是理解perforce裡面的integration/branch機制。在以前,並沒有接觸過通過scm來進行**的版本控制,這是第一次真正地使用到。

[color=blue]p4 integrate a.txt b.txt[/color]

執行這條命令的具體效果分幾種情況:

1. 如果b.txt不存在, 或者之前並不作為a.txt的分支存在, 那麼integrate命令將做branch動作, 即將b.txt生成為a.txt的branch. 注意, 這裡如果b.txt之前存在並且不作為a.txt的branch存在, 必須增加 -i 引數強制將其作為a.txt的branch.

2. 如果b.txt已經存在, 並且之前已經是a.txt的branch, 那麼integrate命令將做merge動作, 將a.txt的修改更新到b.txt上, 並更新b.txt的版本號.

以上兩種情況, 只要b.txt以前已經存在, 都有可能涉及到resolve來解決**衝突.

關於resolve, p4提供了一系列的選項, 無非就是accept who了, 這裡就不細說了.

integrate 還有一種用法, 如下:

[color=blue]p4 integrate -b abranch[/color]

其中abranch是事先用這個命令定義的:

p4 branch abranch

在abranch的view當中將定義**間的integrate關係, 這樣做的好處是可以在乙個branch中定義多個integrate關係, 然後利用p4 integrate -b abranch一次性integrate多個檔案, 省去了乙個乙個檔案更新的步驟.

如在abranch中定義view時這樣定義:

[color=blue]//depot/a.txt... //depot/b.txt

//depot/c.txt... //depot/d.txt[/color]

這樣integrate這個branch時, 就可以一次性integrate兩個檔案了.

integrate的幾個常用引數:

-i target之前與source無版本關聯, 強制target成為source的branch;

-f 不比較target branch的版本是否與source版本對應, 強制執行integrate;

-d 當source檔案刪除時, integrate將刪除target對應檔案; 當target檔案刪除, integrate將re-branch source的對應檔案到target.

對於其他scm工具的版本控制, 日後還要多多研究, 估計大同小異.

perforce的分支與整合

p4的分支建立和整合過程主要包含4個步驟 1 使用 p4 branch 建立branch spec 2 使用 p4 integrate 來實現分支間的整合 3 使用 p4 resolve 來完成衝突的合併 4 使用 p4 submit 提交整合的結果。如下為在p4v中的操作。一 建立branch s...

Perforce的環境變數配置

1.如果使用的是perforce的視覺化的client的話,connection,user,name,password等都是可以在頁面上設定的 可以如果想使用command的操作或是自動化 更新的話,就要配置相應的環境變數了 在系統的環境變數中加入以下配置 p4port ip port port d...

Perforce的環境變數配置

1.如果使用的是perforce的視覺化的client的話,connection,user,name,password等都是可以在頁面上設定的 可以如果想使用command的操作或是自動化 更新的話,就要配置相應的環境變數了 在系統的環境變數中加入以下配置 p4port ip port port d...