5

Subversion ディレクトリの変更を監視するために pysvn を使用しています。これは、リビジョンから情報を取得する方法です:

(...)
svn_root = "http://svn/"
client = pysvn.Client()
from_revision = pysvn.Revision(pysvn.opt_revision_kind.number, 1500)
to_revision = pysvn.Revision( pysvn.opt_revision_kind.head )

revisions = client.log(svn_root, to_revision, to_revision, discover_changed_paths=True)

head - 5ここで、私の例のように特定のリビジョンからではなく、最後の 5 つのリビジョン (からまで)内の変更を取得したいと考えていますhead。どうすればそれを達成できますか?先頭リビジョンの NUMBER を取得するにはどうすればよいですか?

Python から Shell を呼び出すことでそれを行うことができました。しかし、pysvn を使用した「Pythonic」の方法があると思います。

4

3 に答える 3

7

とった。チェックアウトされた SVN ソースへのパスを提供する場合、次のように HEAD リビジョンを要求できます。

headrev = client.info(svnroot).get("revision").number

別の方法は次のとおりです。

headrev = pysvn.Revision( pysvn.opt_revision_kind.head )            
revlog = svnclient.log( url, revision_start=headrev, revision_end=headrev, discover_changed_paths=False)
headrev = revlog[0].revision.number

(注意、後者は SVN リポジトリのルートを url として使用する場合にのみ機能します。revlog は、HEAD 自体でない場合にリポジトリのサブ url を提供すると空になります)

于 2011-04-03T10:26:54.970 に答える
6

より良い(そしてより速い)方法はこれです:

client.revpropget("revision", url=svn_url)[0].number
于 2013-01-29T21:24:26.027 に答える