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 に答える