mrlib.py: add patches2mrs helper
authorFrantisek Hrbata <frantisek@hrbata.com>
Wed, 16 Dec 2020 09:47:01 +0000 (10:47 +0100)
committerFrantisek Hrbata <frantisek@hrbata.com>
Wed, 16 Dec 2020 09:47:01 +0000 (10:47 +0100)
Signed-off-by: Frantisek Hrbata <frantisek@hrbata.com>
mrlib.py

index 8ba886d45b1e59d199e38c00bf6aeae7269f22b5..d6bb0af14ab02e6063785386e8a24276f00e1c87 100755 (executable)
--- a/mrlib.py
+++ b/mrlib.py
@@ -189,6 +189,25 @@ def comments2mrs(refs, mrs=None):
 
     return m
 
+def patches2mrs(refs, mrs=None):
+    if not mrs:
+        mrs = filter_revs(refs, mrs=mrs, types=["head"])
+
+    tags = load_tags(mrs, refs=refs, commits=False)
+
+    m = dict()
+    for mr in mrs:
+        ctags = get_commit_tags(tags, mr, rev_zero)
+        if not ctags:
+            continue
+
+        commits = get_tag_value(ctags, "C").split()
+        for commit in commits:
+            if not commit in m:
+                m[commit] = list()
+            m[commit].append(mr)
+    return m
+
 def add_tag(tags, mr, commit, tag, user, value):
     if mr not in tags:
         tags[mr] = dict()