Exemplo n.º 1
0
def main():
    parser = argparse.ArgumentParser(description='Get related patches')
    parser.add_argument('--git-dir',
                        default=None,
                        help='Path to git directory')
    parser.add_argument('--verbose', help='print commits', action='store_true')
    parser.add_argument('--chatty', help='print diffs', action='store_true')
    parser.add_argument('--commit',
                        help='commit hash to find related patches',
                        required=True)
    args = parser.parse_args()

    setup_logging(args)

    reviewer = Reviewer(args.verbose, args.chatty, git_dir=args.git_dir)
    links = reviewer.get_links_from_local_sha(args.commit)

    series = None
    for l in reversed(links):
        logger.debug('Trying patchwork link {}'.format(l))
        parsed = urllib.parse.urlparse(l)

        m = re.match('(.*?)/patch/([^/]*)/?', parsed.path)
        if not m:
            continue
        pw = TrollConfigPatchwork('generated', parsed.netloc, m.group(1),
                                  False)

        logger.debug('Trying parsed patchwork link {}'.format(pw))
        p = PatchworkPatch([pw], l)
        series = p.get_series()
        if series:
            break

    if not series:
        logger.error('Could not find series for patch')
        return 1

    logger.info('Found series: {}'.format(series.url.geturl()))
    patches = series.get_patch_subjects()
    for p in patches:
        logger.info(' Find commits for: {}'.format(p))
        commit = reviewer.get_commit_from_subject(
            p, surrounding_commit=args.commit)
        if not commit:
            logger.warning('Could not find commit for {}'.format(p))
        for c in commit:
            logger.info('   Found: {}'.format(c))
def main():
    parser = argparse.ArgumentParser(description='Get related patches')
    parser.add_argument('--git-dir',
                        default=None,
                        help='Path to git directory')
    parser.add_argument('--verbose', help='print commits', action='store_true')
    parser.add_argument('--chatty', help='print diffs', action='store_true')
    parser.add_argument('--commit',
                        help='commit hash to find related patches',
                        required=True)
    args = parser.parse_args()

    setup_logging(args)

    reviewer = Reviewer(args.verbose, args.chatty, git_dir=args.git_dir)
    links = reviewer.get_links_from_local_sha(args.commit)

    series = None
    for l in reversed(links):
        p = PatchworkPatch(l)
        series = p.get_series()
        if series:
            break

    if not series:
        logger.error('Could not find series for patch')
        return 1

    logger.info('Found series: {}'.format(series.url.geturl()))
    patches = series.get_patch_subjects()
    for p in patches:
        logger.info(' Find commits for: {}'.format(p))
        commit = reviewer.get_commit_from_subject(
            p, surrounding_commit=args.commit)
        if not commit:
            logger.warn('Could not find commit for {}'.format(p))
        for c in commit:
            logger.info('   Found: {}'.format(c))