0

我正在编写一个每天连接到 perforce 的 python 应用程序。该应用程序在 perfoce 上获取 excel 文件的内容,对其进行解析,并将一些数据复制到数据库中。该文件相当大,所以我想跟踪应用程序上次在数据库上读取的文件的哪个版本,这样我可以检查版本号是否更高,如果文件没有更改,则避免读取文件.

我可以在最后一次签入/更改文件时获取修订号或更改列表号。或者,如果您对如何实现我避免不必要地读取文件的目标有任何其他建议。

我正在使用 python 2.7 和 perforce-python API

4

1 回答 1

2

我想到了几个选择。

  1. 最简单的方法是始终让您的程序使用相同的客户端并让它同步文件。您可以让您的程序调用p4 sync并查看您是否获得了新版本。如果你得到一个新版本,让它继续。这种方法的优点是您不需要记住上次运行程序的任何状态/版本。

  2. 如果您不喜欢使用固定客户端,您可以让您的程序始终检查相关文件的当前头版本:
    p4 fstat //depot/path/yourfile |grep headRev | sed 's/.*headRev \(.*\)/\1/' 您可以将该版本存储在某个临时文件中以供下次程序运行,并每次比较版本。

  3. 如果您在固定时间运行程序(例如通过 cron),您可以检查最后修改时间(使用p4 filelog或使用p4 fstat),如果时间介于上次运行时间和当前时间之间,那么您需要处理文件。这个选项有点复杂,因为您需要解析那些不同的时间格式。

于 2013-04-04T08:33:14.203 回答