0

Python で svn ノード プロパティを変更する場合、

svn.fs.change_node_prop(root, path, "thisisa:property", "andthisisavalue") 

「svn.core.SubversionException: ('Root object must be a transaction root', 160022)」というメッセージで例外を発生させます

ルートはこれで作成されます:

canon_path = svn.core.svn_path_canonicalize(repos_path)
repos_ptr = svn.repos.open(canon_path)
fsob = svn.repos.fs(repos_ptr)
headrev = svn.fs.youngest_rev(fsob)
root = svn.fs.revision_root(fsob, headrev)

path は、"project/a/directory" のようなディレクトリ パスです。

Python の svn モジュールに関するドキュメントが見つからないため、これを解決する方法がわかりません。

これで私を助けてもらえますか?

ありがとうございました。

4

1 に答える 1

0

root をヘッド リビジョン ルートとして使用するのは間違っていました。

コミットのためにトランザクションを開始し、そのトランザクション ルートを取得する必要がありました。

私が作ったこれを行うために、

txn = svn.repos.fs_begin_txn_for_commit(repos_ptr, headrev, SVN_COMMIT_USER, SVN_COMMIT_MESSAGE)
root = svn.fs.txn_root(txn)

これが誰にでも役立つことを願っています。

于 2011-06-03T12:46:23.140 に答える