`p4 -ztag sync ...@CLN` 报告的变化到底是什么?
Exactly what is the change reported by `p4 -ztag sync ...@CLN`?
如果我运行 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
将 backward 同步到较早的更改,那么报告的 change
有时不是 CLN
,而是是一些稍早的变化。 (是的,CLN
是 一个有效的、已提交的更改,它会影响 ...
下的文件。如果我向后同步更远,然后再向前同步 使用相同的 p4 sync ...@CLN
命令,然后报告的 change
是我指定的更改编号。)
为什么 change
的报告值对于相同的 p4 sync ...@CLN
命令不同,这显然取决于我是向前同步还是向后同步?这是 Perforce 错误吗? (我正在使用 P4/LINUX26X86_64/2015.1/1126382 和 P4D/LINUX26X86_64/2015.1/1240625。)
报告的更改是与正在同步的任何修订关联的最高更改列表。
在某些情况下,这可能恰好与命令行中指定的更改列表相同(如果有的话),但它通常会更低(尽管我认为它不可能更高) .
举个例子:
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)。如果我们同步多个文件,报告的更改将是同步到工作区的整组文件修订中最高的。
如果我运行 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
将 backward 同步到较早的更改,那么报告的 change
有时不是 CLN
,而是是一些稍早的变化。 (是的,CLN
是 一个有效的、已提交的更改,它会影响 ...
下的文件。如果我向后同步更远,然后再向前同步 使用相同的 p4 sync ...@CLN
命令,然后报告的 change
是我指定的更改编号。)
为什么 change
的报告值对于相同的 p4 sync ...@CLN
命令不同,这显然取决于我是向前同步还是向后同步?这是 Perforce 错误吗? (我正在使用 P4/LINUX26X86_64/2015.1/1126382 和 P4D/LINUX26X86_64/2015.1/1240625。)
报告的更改是与正在同步的任何修订关联的最高更改列表。
在某些情况下,这可能恰好与命令行中指定的更改列表相同(如果有的话),但它通常会更低(尽管我认为它不可能更高) .
举个例子:
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)。如果我们同步多个文件,报告的更改将是同步到工作区的整组文件修订中最高的。