执行脚本:每当远程仓库的文件更改时同步

2024-09-29 02:28:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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),则可以使用该文件进行进一步处理。当仓库发生变化时,是否有办法定期执行此操作?请给我指一下正确的方向。提前谢谢。在


Tags: 文件theinfor客户机远程timethis
1条回答
网友
1楼 · 发布于 2024-09-29 02:28:20

你没有提到你在哪个平台上,但是现在所有主要的平台(Linux、Mac、Windows)都有一些“cron”或“调度任务”功能的概念,可以定期运行程序。在

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

因此,您可以编写一个程序,从Perforce获取感兴趣的文件,然后根据需要使用操作系统的cron或Scheduled Tasks工具来运行程序。在

相关问题 更多 >