我正在检查运行p4 -G opened
时返回的Python字典(或者我使用的是P4Python API,p4.run_opened
)。结果包含haveRev
和rev
条目,指示每个文件的修订号。有什么不同? (我似乎无法找到专门描述p4.run_opened
的P4Python API文档。)
我认为,如果我编辑了一个文件,同步到以后的修订版并忽略了运行p4 resolve
,那么它们可能会有所不同,但haveRev
和rev
似乎仍然存在在那种情况下是一样的。
答案 0 :(得分:5)
他们几乎总是一样的。只有在您明确同步到您当前正在“处理”的修订版之外的修订版时,它们才会有所不同。这样,如果您还原,您的工作区将与您明确同步的内容保持一致。
示例:
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
另一种情况是它们不同(除了在打开文件后明确同步)是你打开文件的方式是隐式同步文件,例如: with integrate(默认情况下隐式同步到head,这样你就不必做两次解析)。在这种情况下,文件将在头部转速打开,但是恢复将使您恢复到打开文件之前的状态,而不是将您同步到打开和恢复的(可能是意外的和不需要的)副作用。文件。