2013-04-03 95 views
0

我正在编写一个每天连接到perforce的python应用程序。应用程序获取perfoce上的excel文件的内容,解析它,并将一些数据复制到数据库。该文件相当大,所以我想跟踪应用程序上次在数据库中读取哪个修订版本的文件,这样我可以检查修订版本号是否更高,并避免在文件未更改的情况下读取该文件。如何获取文件的修订版本号或修改/更改时的更改列表号

我可以做的就是获取修订版号,或上次检入/更改文件时的更改列表号。或者,如果您有任何其他建议,说明如何实现避免不必要地读取文件的目标。

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

+0

您是否创建了一个每天连接的新客户端? – devnull 2013-04-04 08:02:20

回答

2

想到几个选项。

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

  2. 如果你不喜欢使用固定的客户,你可以让你的程序经常检查有问题的文件的当前最新修订版:
    p4 fstat //depot/path/yourfile |grep headRev | sed 's/.*headRev \(.*\)/\1/' 你可以存储版本的程序在某些下次运行临时文件并每次比较版本。

  3. 如果你在固定的时间运行您的程序(例如,通过cron),你可以检查的最后修改时间(或者与p4 filelogp4 fstat),如果时间是最后运行的时间和当前时间,然后间你需要处理文件。这个选项有点复杂,因为你需要解析这些不同的时间格式。

相关问题