0

我正在编写一个与 Perforce 交互的脚本,其中需要能够理解待处理的更改列表。为此,我使用' p4 describe' 和 ' p4 opened',它们非常简单。例如,打开以进行编辑的文件显示如下(从 p4 打开):

//source/stuff/things.h#1 add default change (text)

我似乎无法弄清楚的是如何检测用户分支文件然后对该文件使用“重新打开以进行编辑”命令的情况(相当于使用“p4 edit' 在要分支的文件上)在提交之前。集成文件然后在提交集成之前使用“重新打开以进行编辑”也是如此。在分支情况下,文件显示为“添加”,但没有指示还有一个分支正在进行(因此上面的示例可能是真正的添加或重新打开的分支)。在集成情况下,它显示为“编辑”。在这两种情况下,在我提交更改后,我可以看到文件已分支/集成,但我需要能够为待处理的更改执行此操作。从理论上讲,我希望看到这样的东西,其中 things.h 是从 thangs.h 分支和编辑的:

//source/stuff/things.h#1 add default change (text)
  branch from //source/other/thangs.h#42

有人知道实现这一目标的方法吗?我还要提到我正在运行一个旧版本的 Perforce(从 2004 年开始),所以也许它在新版本中是可行的,我只需要更新我的软件。

4

2 回答 2

2

p4 resolved ” 几乎完全符合您的要求,但不幸的是它在 2007.2 中是新的。

[C:\dfp\Common\Code\Python]p4 opened foo.py
//buddha/Common/Code/Python/foo.py#1 - add default change (kxtext)

[C:\dfp\Common\Code\Python]p4 resolved foo.py
c:\dfp\Common\Code\Python\foo.py - branch from //buddha/Common/Code/Python/memdump.py#1,#30

在用户运行“解决”之前,您可能无法检测到问题,但他们必须在提交之前解决问题。

于 2009-10-23T19:05:21.667 回答
0

我认为在发出“重新打开编辑”时这是不可能的。正如您已经指出的那样,重新打开命令会将文件状态更改为不同的状态。我进行了本地测试(我正在运行 2008.2)。自您的版本以来,perforce 报告文件添加/编辑状态的方式似乎确实发生了一些变化,但是您尝试做的事情似乎仍然不可能

d:\sandbox\ctg_test>p4 integ test.txt test_branch.txt
//ctg_test/test_branch.txt#1 - branch/sync from //ctg_test/Test.txt#1,#15

d:\sandbox\ctg_test>p4 opened
//ctg_test/test_branch.txt#1 - branch default change (text)

请注意,打开的命令现在显示文件状态的“分支”,而不是添加,我认为它可能已与您的服务器版本一起显示。但踢球者:

d:\sandbox\ctg_test>p4 edit test_branch.txt
//ctg_test/test_branch.txt#1 - reopened for add

d:\sandbox\ctg_test>p4 opened
//ctg_test/test_branch.txt#1 - add default change (text)

我尝试使用 -ztag 选项查看是否提供了更多信息:

d:\sandbox\ctg_test>p4 -ztag opened
... depotFile //ctg_test/test_branch.txt
... clientFile //client-mark.allender/ctg_test/test_branch.txt
... rev 1
... action add
... change default
... type text
... user mark.allender
... client client-mark.allender

p4 fstat 也无济于事。

于 2009-06-03T22:00:44.000 回答