From 7f8dfca32d63c1dcf90ce27d7b0096b390676b29 Mon Sep 17 00:00:00 2001 From: Frantisek Hrbata Date: Thu, 10 Dec 2020 18:34:26 +0100 Subject: [PATCH] mrlib.py: add comments2mrs Signed-off-by: Frantisek Hrbata --- mrlib.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/mrlib.py b/mrlib.py index 1ade76c..8ba886d 100755 --- a/mrlib.py +++ b/mrlib.py @@ -147,9 +147,12 @@ def verify_comments(comments, refs): mboxes = filter_revs(refs, types=["mbox"]) stdin = "\n".join(mboxes) - rv, out, err = run(["git", "rev-list", "--stdin"], stdin=stdin) + if stdin: + rv, out, err = run(["git", "rev-list", "--stdin"], stdin=stdin) + valid = set(out.strip().split("\n")) + else: + valid = set() - valid = set(out.strip().split("\n")) diff = revs - valid if diff: sys.exit("Invalid or non-existing comment: {}".format(" ".join(diff))) @@ -171,6 +174,21 @@ def verify_commits(mrcommits, commits): return list(revs) +def comments2mrs(refs, mrs=None): + mb_refs = filter_refs(refs, mrs=mrs, types=["mbox"]) + + stdin = "\n".join(ref for rev, ref in mb_refs) + rv, out, err = run(["git", "log", "--format=%S %H", "--stdin"], + stdin=stdin) + + m = dict() + for line in out.strip().split("\n"): + ref, rev = line.split() + mr = ref.split('/')[2] + m[rev] = mr + + return m + def add_tag(tags, mr, commit, tag, user, value): if mr not in tags: tags[mr] = dict() -- 1.7.10.4