我目前正在开发一项功能,该功能允许用户确定文件夹中的哪些文件不同步。
我的代码目前似乎运行良好,基本上我所做的是:
话虽如此,我在我的条件中使用 HeadAction 而不是 Action 是否正确?两者有什么区别?
根据 Perforce 的说法:
出于某种原因,我真的不觉得这些描述有帮助。
有人可以改写这些..吗?
谢谢
最佳答案
'headAction' 是 depot 中 head 修订版的 Action - 意味着它是已提交到 depot 的最新修订版的 Action 。通常,这对于新添加(和提交)的文件是“添加”,对于已编辑和提交的文件是“编辑”,或者当文件在头部被删除(并再次提交)时是“删除”。这里还有其他选项(如“分支”、“集成”等)。
'action' 是您当前正在对文件执行的操作。如果您打开文件进行“编辑”,则操作将是“编辑”。同样,如果您为“删除”打开文件,则操作将是“删除”。如果您提交更改,则该操作将成为 headAction。
这是一个小例子。我创建了一个新文件并提交了它。仓库中有 1 个修订版。它的头部 Action 是“添加”。然后我编辑了文件。您可以看到 fstat 输出:
d:\projects\tools\test>p4 fstat new_file.txt
... depotFile //tools/test/new_file.txt
... clientFile d:\projects\tools\test\new_file.txt
... isMapped
... headAction add
... headType text
... headTime 1285014691
... headRev 1
... headChange 759253
... headModTime 1285014680
... haveRev 1
d:\projects\tools\test>p4 edit new_file.txt
//tools/test/new_file.txt#1 - opened for edit
d:\projects\tools\test>p4 fstat new_file.txt
... depotFile //tools/test/new_file.txt
... clientFile d:\projects\tools\test\new_file.txt
... isMapped
... headAction add
... headType text
... headTime 1285014691
... headRev 1
... headChange 759253
... headModTime 1285014680
... haveRev 1
... action edit
... change default
... type text
... actionOwner fred.flintstone
如果您试图判断文件夹是否不同步,那么您似乎只需要查看“haveRev”与“headRev”。如果 headRev 是 > haveRev,则说明您已过时。如果您关心文件是否在 head 处被删除,那么查看 headAction 可能会很有用。我想我没有足够的信息来了解您的问题。
无论如何,HTH。
关于file - Perforce:fstat 中 "Action"和 "HeadAction"的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5352261/