예제 #1
0
def _parse_commit_log(repo_path):
    from vbench.git import parser, _convert_timezones
    from pandas import Series

    git_cmd = "git --git-dir=%s/.git --work-tree=%s " % (repo_path, repo_path)
    githist = git_cmd + (
        "log --graph --pretty=format:" '"::%h::%cd::%s::%an" > githist.txt'
    )
    os.system(githist)
    githist = open("githist.txt").read()
    os.remove("githist.txt")

    shas = []
    timestamps = []
    messages = []
    authors = []
    for line in githist.split("\n"):
        if "*" not in line.split("::")[0]:  # skip non-commit lines
            continue

        _, sha, stamp, message, author = line.split("::", 4)

        # parse timestamp into datetime object
        stamp = parser.parse(stamp)

        shas.append(sha)
        timestamps.append(stamp)
        messages.append(message)
        authors.append(author)

    # to UTC for now
    timestamps = _convert_timezones(timestamps)

    shas = Series(shas, timestamps)
    messages = Series(messages, shas)
    timestamps = Series(timestamps, shas)
    authors = Series(authors, shas)
    return shas[::-1], messages[::-1], timestamps[::-1], authors[::-1]
예제 #2
0
def _parse_commit_log(this,repo_path,base_commit=None):
    from vbench.git import parser, _convert_timezones
    from pandas import Series
    git_cmd = 'git --git-dir=%s/.git --work-tree=%s ' % (repo_path, repo_path)
    githist = git_cmd + ('log --graph --pretty=format:'+
                         '\"::%h::%cd::%s::%an\"'+
                         ('%s..' % base_commit)+
                         '> githist.txt')
    os.system(githist)
    githist = open('githist.txt').read()
    os.remove('githist.txt')

    shas = []
    timestamps = []
    messages = []
    authors = []
    for line in githist.split('\n'):
        if '*' not in line.split("::")[0]:  # skip non-commit lines
            continue

        _, sha, stamp, message, author = line.split('::', 4)

        # parse timestamp into datetime object
        stamp = parser.parse(stamp)

        shas.append(sha)
        timestamps.append(stamp)
        messages.append(message)
        authors.append(author)

    # to UTC for now
    timestamps = _convert_timezones(timestamps)

    shas = Series(shas, timestamps)
    messages = Series(messages, shas)
    timestamps = Series(timestamps, shas)
    authors = Series(authors, shas)
    return shas[::-1], messages[::-1], timestamps[::-1], authors[::-1]
예제 #3
0
def _parse_commit_log(repo_path):
    from vbench.git import parser, _convert_timezones
    from pandas import Series

    git_cmd = "git --git-dir=%s/.git --work-tree=%s " % (repo_path, repo_path)
    githist = git_cmd + ("log --graph --pretty=format:" '"::%h::%cd::%s::%an" > githist.txt')
    os.system(githist)
    githist = open("githist.txt").read()
    os.remove("githist.txt")

    shas = []
    timestamps = []
    messages = []
    authors = []
    for line in githist.split("\n"):
        if "*" not in line.split("::")[0]:  # skip non-commit lines
            continue

        _, sha, stamp, message, author = line.split("::", 4)

        # parse timestamp into datetime object
        stamp = parser.parse(stamp)

        shas.append(sha)
        timestamps.append(stamp)
        messages.append(message)
        authors.append(author)

    # to UTC for now
    timestamps = _convert_timezones(timestamps)

    shas = Series(shas, timestamps)
    messages = Series(messages, shas)
    timestamps = Series(timestamps, shas)
    authors = Series(authors, shas)
    return shas[::-1], messages[::-1], timestamps[::-1], authors[::-1]