Perforce:fstat中"Action"和"HeadAction"之间的区别?

Hus*_*lil 3 directory statistics perforce action file

我目前正在开发一项功能,允许用户确定文件夹中的哪些文件不同步.

我的代码目前似乎运行良好,基本上我做的是:

  • Fstat在一个文件夹上
  • 迭代结果并标记满足以下条件的记录:
    • 修订!=头部修订
    • HeadAction ==编辑

话虽如此,在我的条件下使用HeadAction而不是Action是否正确?两者有什么区别?

据Perforce说:

  • HeadAction:如果在仓库中,在头部修订时采取的行动.
  • 操作:如果在工作区中打开,则打开操作.

出于某种原因,我并不认为这些描述有用.

有人可以改述这些......?

谢谢

Mar*_*ark 5

'headAction'是仓库中头部修订版的操作 - 这意味着它是已提交给仓库的最新修订版的操作.通常,这是"添加"用于新添加(和已提交)的文件,"编辑"用于已编辑和提交的文件,或"删除"文件已在头部删除(并再次提交).这里还有其他选项(如'branch','integration'等).

'action'是您当前对该文件所做的操作.如果您打开"编辑"文件,则操作将为"编辑".同样,如果您打开"删除"文件,则操作将为"删除".如果您提交更改,则该操作将成为headAction.

这是一个小例子.我创建了一个新文件并提交了它.仓库中有1个修订版.它的主要动作是"添加".然后我编辑了文件.你可以看到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
Run Code Online (Sandbox Code Playgroud)

如果您试图判断文件夹是否不同步,那么您似乎只需要查看'haveRev'vs'headRev'.如果headRev是> haveRev,那么你已经过时了.如果您关心文件是否在头部被删除,那么查看headAction可能会有用.我想我没有足够的信息来了解您的问题.

无论如何,HTH.