2017-08-23 21 views
1

私はヘッドリビジョンを常にエクスポートする既存のプログラムを変更していますが、より柔軟で日付/時刻に基づいたリビジョンをチェックアウトしたいと思います。 SVN cliを直接使用すると、これは問題ありません。svn log -r {start date}:{end date} --xmlのようなものを実行し、これらの値を妥当な数の値を返すように設定して、最大のリビジョンを見つけるために結果を反復することができます。しかし、pysvnのlog、export、info/info2関数はすべてリビジョンを入力として使用しますが、このツールのユーザーは知っているか認識しているものではありません。日付に基づくpysvnエクスポート

私の質問は、日付に基づいて直接エクスポートを実行するか、少なくとも指定された日付までコミットされた最後のリビジョンを判断することです(できれば、コミット全体のログを取り出さずに歴史)?

+0

私は来ましたサブプロセスで実行されているsvn logステートメントに依存する暫定的な解決策があります(私はより良いpysvn答えを見つけるべきではありません)。誰かがこのライブラリでより良い解決策を見つけるのを助けることを依頼しています。 –

答えて

1

トリックは、エクスポートの呼び出しで日付リビジョンを使用することです。ここ

さにある参照ドキュメントからの抽出物である: http://pysvn.tigris.org/docs/pysvn_prog_ref.html#pysvn_revision

pysvn.Revision - subversionのリビジョン

リビジョンオブジェクト三個のメンバ変数を持つ:

kind - the kind of revision, its value is one of the opt_revision_kind enumerations. 
date - date and time when kind is opt_revision_kind.date, as seconds since the epoch which is compatible with python's time module. 
number - revision number when kind is opt_revision_kind.number 

インタフェースの概要:

import pysvn 
import time 

revhead = pysvn.Revision(pysvn.opt_revision_kind.head) 
revdate = pysvn.Revision(pysvn.opt_revision_kind.date, time.time()) 
revnum = pysvn.Revision(pysvn.opt_revision_kind.number, 4721) 
+0

とてもシンプルです。私は以前にこれを試した時にタイムスタンプに日付を変換するのを忘れていたに違いない。ありがとう! –

関連する問題