首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pysvn client.log()返回空字典

pysvn client.log()返回空字典
EN

Stack Overflow用户
提问于 2010-05-15 16:08:33
回答 2查看 5.6K关注 0票数 4

我使用以下脚本从svn获取日志消息

代码语言:javascript
复制
import pysvn
class  svncheck(): 
    def __init__(self, svn_root="http://10.11.25.3/svn/Moodle/modules", svn_user=None, svn_password=None):
        self.user = svn_user
        self.password = svn_password
        self.root = svn_root

    def diffrence(self): 
        client = pysvn.Client()
        client.commit_info_style = 1
        client.callback_notify = self.notify
        client.callback_get_login = self.credentials
        log  = client.log(
        self.root, 
        revision_start=pysvn.Revision( pysvn.opt_revision_kind.number, 0),
        revision_end=pysvn.Revision( pysvn.opt_revision_kind.number, 5829),
        discover_changed_paths=True,
        strict_node_history=True,
        limit=0,
        include_merged_revisions=False,
        )
        print log
    def notify( event_dict ):
        print event_dict
        return   

    def credentials(realm, username, may_save):
           return True, self.user, self.password, True



s = svncheck()
s.diffrence()

当我运行这个脚本时,它返回一个空的字典对象[<PysvnLog ''>, <PysvnLog ''>, <PysvnLog ''>,..

你知道我做错了什么吗?我使用的是pysvn版本1.7.2,再次构建svn版本1.6.5,cheers Nash

EN

回答 2

Stack Overflow用户

发布于 2010-09-08 11:48:24

pysvn.Client.log方法返回一个日志条目列表;每个日志条目都是一个字典。(参见pysvn Programmer's reference)

您可以在代码中打印日志消息,如下所示:

代码语言:javascript
复制
for info in log:
    print info.revision.number,
    print info.author,
    print time.ctime(info.date),
    print info.message
票数 8
EN

Stack Overflow用户

发布于 2012-02-23 20:10:13

最后让它工作,似乎我没有完全理解这个特殊的功能是如何工作的,不管怎样……我想和我的伙伴们分享一下!

代码语言:javascript
复制
    start_rev = 10
    end_rev = 30
    url = http://dipidi.do.da/svn/foobar
    log_dict = dict((log.revision.number, log["message"]) for log in pysvn.Client().log(url,
                            revision_start=pysvn.Revision( pysvn.opt_revision_kind.number, start_rev ),
                            revision_end=pysvn.Revision( pysvn.opt_revision_kind.number, end_rev ),
                            discover_changed_paths=True,
                            strict_node_history=True,
                            limit=0))
    pprint(log_dict)

如果你不喜欢理解

代码语言:javascript
复制
    for log in pysvn.Client().log(url,
        revision_start=pysvn.Revision( pysvn.opt_revision_kind.number, start_rev ),
        revision_end=pysvn.Revision( pysvn.opt_revision_kind.number, end_rev ),
        discover_changed_paths=True,
        strict_node_history=True,
        limit=0):
    print log.revision.number, log["author"], log["message"]

理解选项为我提供了以下内容

代码语言:javascript
复制
    {10: 'testing my commits',
     11: 'whohooo this stuff is fun'}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2839386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档