【问题标题】:How to get the file count for each revision of mercurial using python script如何使用 python 脚本获取每个 mercurial 修订版的文件数
【发布时间】:2015-11-27 12:08:51
【问题描述】:
import sys
import hglib
import re 

# figure out what repo path to use

if len(sys.argv) > 1:
    repo1 = sys.argv[1]    

# connect to hg
client1 = hglib.open(repo1)

for data1 in client1.log("date('>2015-06-01') and date('<2015-09-16')"):

    m = re.findall("\w+\\-\d+", data1.desc.upper())
    if len(m)> 0:     
        data_row = [data1.rev,data1.author,data1.branch,data1.desc,m[0]] 

这个脚本给出了修订、作者、分支、描述。我想获取每个修订版的文件数。如何才能做到这一点?

【问题讨论】:

    标签: python mercurial


    【解决方案1】:

    你可以使用status:

    >>> changes = client.status(rev=[start, end], modified=True, added=True)
    >>> len(changes)
    6
    

    我有now found你也可以这样做:

    >>> changes = client.status(change=[start, end])
    >>> len(changes)
    6
    

    【讨论】:

    • @JayashreeShetty 不客气。如果没有更好的结果,您可以投票并接受答案(c:
    • 我已经做到了。 code for data1 in client1.log("date('>2015-09-01') and date('
    • 看起来正确。它会给您带来预期的结果吗?
    • 如果我立即使用code len(client1.status(rev=data1.rev, added=True) 它给出 136 作为计数。但是如果我使用 client1.log 循环来循环它我在上面提到过,它为每个修订版打印大约 14,000 个。我没有那么多文件。对于每个修订版,它应该打印添加的文件数量。但是当我使用 for 循环时它会做其他事情。
    • 我也试过这个code changes = client1.status(rev=["date('2015-09-01')", "date('2015-09-02')"] ,修改=真,添加=真)打印长度(更改)。给出了大约 25 条记录,我认为这很好。但是如果我们给出修订而不是日期,那么我们会得到一些意想不到的结果
    猜你喜欢
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 2011-12-01
    相关资源
    最近更新 更多