我正在编写一个每天连接到perforce的python应用程序。应用程序获取perfoce上的excel文件的内容,解析它,并将一些数据复制到数据库。该文件相当大,所以我想跟踪应用程序最后在数据库上读取的文件的哪个版本,这样我可以检查修订版号是否更高,如果没有更改则避免读取文件
我可以在上次检入/更改文件时获取修订号或更改列表号。或者,如果您对如何实现避免不必要地读取文件的目标有任何其他建议。
我正在使用python 2.7和perforce-python API
答案 0 :(得分:2)
我想到了几种选择。
最简单的方法是始终让您的程序使用同一个客户端并让它同步文件。您可以让程序调用{{1}},看看是否有新版本。如果你有新版本,请继续。这种方法的优点是您不需要记住上一次运行程序中的任何状态/版本。
如果您不喜欢使用固定客户端,您可以让程序始终检查相关文件的当前头版本:
p4 sync
您可以将该版本存储在某个临时文件中的下一次程序运行中,并每次比较版本。
如果您在固定时间运行程序(例如通过cron),您可以检查上次修改时间(使用p4 fstat //depot/path/yourfile |grep headRev | sed 's/.*headRev \(.*\)/\1/'
或p4 filelog
),如果时间介于时间之间在上一次运行和当前时间之后,您需要处理该文件。此选项有点复杂,因为您需要解析这些不同的时间格式。