我有一个绝对的客户工作区和一个远程仓库。我正在尝试编写一个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打印),则可以使用该文件进行进一步处理。在仓库发生变化时,是否有定期执行此操作的方法?请指出正确的方向。提前谢谢。
发布于 2015-05-05 13:31:14
您没有提到您使用的是哪个平台,但是现在的所有主要平台(Linux、Mac、Windows)都有"cron“或”计划任务“功能的概念,可以定期运行您的程序。
例如,我曾经有一个网站,每当一个新的文件被签入Perforce时,我都会更新它。为此,我安排了一个任务,该任务每分钟运行一次,并运行一个“同步”命令。如果没有签入新文件,则同步找不到任何要做的事情(因此,什么也不做);如果签入了新文件,则同步将它们复制到我的web服务器的内容区域。
因此,您可以编写一个程序,就像您已经编写的那样,从Perforce获取有趣的文件,然后使用操作系统的cron或计划任务工具来根据需要经常运行您的程序。
https://stackoverflow.com/questions/30052486
复制相似问题