Repysitory
提供: やる気向上作戦
目次 |
何ですかこれは?
SubversionのPythonバインディングを、使いやすいようにラッピングしたクラスライブラリ。 自分の使う最低限の機能しか実装してません。
ダウンロード
オンラインドキュメント
例
最新のリビジョンで追加/更新されたファイルの内容を表示
from repys.repys import *
# リポジトリのパス
repospath = '/var/svn/test'
# メモリプールを作成
pool = Pool()
# リポジトリオブジェクトを構築
r = Repository(repospath, pool)
# ファイルシステムオブジェクトを取得
f = r.fs()
# 最新のリビジョン番号を取得
rev = f.youngest_revision()
# 最新リビジョンのバージョン化ファイルシステムのルートを取得
fsRoot = f.revision_root(rev)
# 変更されたパス一覧を取得
changes = fsRoot.paths_changed()
# 変更されたパスのうち、追加/変更されたファイルの内容を表示
for i in changes:
if (i.change_kind() == PATH_CHANGE_ADD or
i.change_kind() == PATH_CHANGE_MODIFY):
node = fsRoot.node(i.path())
if (node.is_file()):
print i.path() + ":"
strm = node.contents()
text = strm.read()
strm.close()
print text
print node.proplist()
# メモリプールを破棄
pool.destroy()
