Perforce脚本:每当远程库的文件发生更改时进行同步

时间:2015-05-05 12:05:15

标签: python perforce

我有一个perforce客户端工作区和一个远程库。我正在尝试编写一个Python脚本,只要在该库中添加或更改新文件,就会定期将远程库同步到我的客户端工作区。我在这里检查了P4P API和一个非常有用的answer,并且对如何实现这一点有一个模糊的想法: -

from P4 import P4, P4Exception
p4 = P4()
p4.port = "1"
p4.user = "User"
p4.client = "Client"

try:
    p4.connect()
    changelist = p4.run_filelog('//server/folder/...@yyyy/mm/dd,@now')
    for r in changelist:
      print r.depotFile #does this print the contents of the changed file??
      print r.revisions[0].time #does this print the change time?

except P4Exception:
    for e in p4.errors:
        print e

finally:
    p4.disconnect()

如果r.depotfile返回文件及其内容(相当于p4打印),我可以使用该文件进行进一步处理。有没有办法在库中发生变化时定期执行此操作?请指出正确的方向。提前谢谢。

1 个答案:

答案 0 :(得分:1)

你没有提到你所处的平台,但现在所有主流平台(Linux,Mac,Windows)都有一些关于cron"的概念。或"计划任务"可以定期运行程序的功能。

例如,我曾经有一个网站,我每次将新文件签入Perforce时都会更新。我通过执行一个每分钟运行一次并执行同步的计划任务来完成此操作。命令。如果没有签入新文件,则同步找不到任何操作(因此,什么也没做);如果已签入新文件,则同步将它们复制到我的Web服务器的内容区域。

因此,您可以编写程序,从Perforce中获取有趣的文件,然后使用您的操作系统的cron或Scheduled Tasks工具,根据需要随时运行您的程序。