他們幾乎總是一樣的。它們僅在您明確同步到您當前正在「正在處理」的版本以外的版本的情況下才會有所不同。這是如此,如果你恢復,你的工作空間將與你明確同步到的內容一致。
例子:
C:\test\999\depot\sam\i\rc\a>p4 edit foo
//depot/sam/i/rc/a/foo#2 - opened for edit
C:\test\999\depot\sam\i\rc\a>p4 -Ztag opened | grep -i rev
... rev 2
... haveRev 2
C:\test\999\depot\sam\i\rc\a>p4 have foo
//depot/sam/i/rc/a/foo#2 - c:\test\999\depot\sam\i\rc\a\foo
C:\test\999\depot\sam\i\rc\a>p4 sync foo#1
//depot/sam/i/rc/a/foo#2 - is opened at a later revision - not changed
C:\test\999\depot\sam\i\rc\a>p4 -Ztag opened | grep -i rev
... rev 2
... haveRev 1
C:\test\999\depot\sam\i\rc\a>p4 have foo
//depot/sam/i/rc/a/foo#1 - c:\test\999\depot\sam\i\rc\a\foo
C:\test\999\depot\sam\i\rc\a>p4 revert foo
//depot/sam/i/rc/a/foo#1 - was edit, reverted
,他們是(從您打開該文件後,明確地同步開)是,如果你以這樣的方式,該文件是隱式同步打開的文件不同的另一種情況,例如與集成(默認情況下默認同步頭,以便您不必做兩個解決)。該文件將在這種情況下在頭部打開,但是恢復會使您恢復到在打開文件之前的狀態,而不是將您同步到打開並恢復(可能意外和不需要的)副作用文件。
啊,同步到一個*更早*版本。這是否意味着'rev> = headRev'總是正確的? – jamesdlin 2014-12-05 10:00:44
我這麼認爲 - 至少我想不出有什麼辦法可以打開一個比你有的版本更早的版本。向前同步將增加兩者(並且在工作轉「rev」向前移動時安排解決方案),並且同步返回將重置haveRev,否則將不會執行任何操作。 – 2014-12-05 19:47:28