我目前正在开发一项功能,允许用户确定文件夹中的哪些文件不同步。
我的代码目前似乎运行良好,基本上我所做的是:
话虽如此,在我的条件下使用HeadAction而不是Action是否正确?两者有什么区别?
根据Perforce:
出于某种原因,我并不认为这些描述有用。
有人可以改写这些......?
由于
答案 0 :(得分: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
如果你试图判断文件夹是否不同步,那么你似乎只需要查看'haveRev'vs'headRev'。如果headRev是> haveRev,你已经过时了。如果您关心文件是否在头部被删除,那么查看headAction可能会有用。我想我没有足够的信息来了解你的问题。
无论如何,HTH。
答案 1 :(得分:2)
我不确定您的确切需求,但如果您这样做
p4 sync -n <folder_name>/...
这将输出需要同步的文件。