如果我运行p4 -ztag sync
,第一张打印的记录如下:
... depotFile //depot/foo/bar
... clientFile /src/foo/bar
... rev 8
... action updated
... fileSize 2928
... totalFileSize 9087
... totalFileCount 1
... change 1234
所有后续记录如下:
... depotFile //depot/foo/baz
... clientFile /src/foo/baz
... rev 2
... action updated
... fileSize 2422
change
字段仅列在第一条记录中,看起来它应该代表我同步的更改编号。如果我从之前的更改同步到稍后的更改,那么情况确实如此。
但是,如果我通过执行p4 sync ...@CLN
将向后同步到之前的更改,则报告的change
有时不是CLN
,而是稍早更改。 (是的,CLN
是一个有效的,已提交的更改,会影响...
下的文件。如果我进一步同步,然后再使用转发相同的p4 sync ...@CLN
命令,然后报告的change
是我指定的更改号。)
为什么同一change
命令的p4 sync ...@CLN
报告值不同,显然取决于我是向前还是向后同步?这是一个Perforce错误吗? (我使用P4 / LINUX26X86_64 / 2015.1 / 1126382和P4D / LINUX26X86_64 / 2015.1 / 1240625。)
答案 0 :(得分:2)
报告的更改是与正在同步的任何修订关联的最高更改列表。
在某些情况下,这可能与命令行中指定的更改列表(如果有)相同,但它通常会更低(尽管我认为没有任何方式可以更高)。< / p>
举个例子:
c:\test\changes>p4 files -a ...
//stream/dev/changes/foo#3 - edit change 23 (text)
//stream/dev/changes/foo#2 - edit change 21 (text)
//stream/dev/changes/foo#1 - add change 19 (text)
c:\test\changes>p4 have ...
//stream/dev/changes/foo#2 - c:\test\changes\foo
c:\test\changes>p4 -Ztag sync -n ...@30
... depotFile //stream/dev/changes/foo
... clientFile c:\test\changes\foo
... rev 3
... action updated
... fileSize 26
... totalFileSize 26
... totalFileCount 1
... change 23
c:\test\changes>p4 -Ztag sync -n ...@20
... depotFile //stream/dev/changes/foo
... clientFile c:\test\changes\foo
... rev 1
... action updated
... fileSize 6
... totalFileSize 6
... totalFileCount 1
... change 19
c:\test\changes>p4 -Ztag sync -n ...@10
... depotFile //stream/dev/changes/foo
... clientFile c:\test\changes\foo
... rev 2
... action deleted
... totalFileSize 0
... totalFileCount 1
... change 0
请注意,当同步@ 30时会报告更改23(因为它与foo#3相关联),当同步@ 20时会报告更改19(因为它与foo#1相关联),并且当同步@ 10时会报告更改0 (因为现在我们正在从工作区删除foo,即同步到foo #none)。如果我们正在同步多个文件,则报告的更改将是同步到工作区的整个文件修订组中的最高值。