我有一个perforce客户机工作区和一个远程仓库。我正在尝试编写一个Python脚本,每当在远程仓库中添加或更改新文件时,它会定期将远程仓库同步到客户机工作区。我在这里查看了p4papi和一个非常有用的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 print),则可以使用该文件进行进一步处理。当仓库发生变化时,是否有办法定期执行此操作?请给我指一下正确的方向。提前谢谢。在
你没有提到你在哪个平台上,但是现在所有主要的平台(Linux、Mac、Windows)都有一些“cron”或“调度任务”功能的概念,可以定期运行程序。在
例如,我曾经有一个网站,每次签入一个新文件来Perforce时,我都会更新这个网站。我通过一个每分钟运行一次的计划任务并运行一个“sync”命令来做到这一点。如果没有签入新文件,则同步将找不到任何操作(因此,什么也不做);如果签入了新文件,则同步会将它们复制到我的web服务器的内容区域。在
因此,您可以编写一个程序,从Perforce获取感兴趣的文件,然后根据需要使用操作系统的cron或Scheduled Tasks工具来运行程序。在
相关问题 更多 >
编程相关推荐