[PATCH] mq: add basic support for DEP-3 patch fields

Andrew Shadura bugzilla at tut.by
Sun May 5 06:37:00 CDT 2013


# HG changeset patch
# User Andrew Shadura <bugzilla at tut.by>
# Date 1367753776 -7200
# Node ID 33f279c34ac6c5b4bd4eb525719261afe7e2433d
# Parent  70f0d1da36b0b304ea00fbdd742285e2dc1c22eb
mq: add basic support for DEP-3 patch fields

Add support for fields specified in Debian patch tagging guidelines
in a document called DEP-3. The documents specifies Description,
Author and Last-Update headers, which are semantically almost
identical to Subject, From and Date already supported by mq.

Additional features of DEP-3, such as Description continuation lines,
multiple Author fields aren't (yet) supported. Also, Last-Update
header isn't updated, as it uses ISO date format without time,
so having Date instead makes more sense.

diff --git a/hgext/mq.py b/hgext/mq.py
--- a/hgext/mq.py
+++ b/hgext/mq.py
@@ -146,14 +146,26 @@ class patchheader(object):
                                            line.startswith("subject: "))):
                 subject = line[9:]
                 format = "tag"
+            elif (format != "tagdone" and (line.startswith("Description: ") or
+                                           line.startswith("description: "))):
+                subject = line[13:]
+                format = "tag"
             elif (format != "tagdone" and (line.startswith("From: ") or
                                            line.startswith("from: "))):
                 user = line[6:]
                 format = "tag"
+            elif (format != "tagdone" and (line.startswith("Author: ") or
+                                           line.startswith("author: "))):
+                user = line[8:]
+                format = "tag"
             elif (format != "tagdone" and (line.startswith("Date: ") or
                                            line.startswith("date: "))):
                 date = line[6:]
                 format = "tag"
+            elif (format != "tagdone" and (line.startswith("Last-Update: ") or
+                                           line.startswith("last-update: "))):
+                date = line[13:]
+                format = "tag"
             elif format == "tag" and line == "":
                 # when looking for tags (subject: from: etc) they
                 # end once you find a blank line in the source
@@ -187,7 +199,7 @@ class patchheader(object):
         self.plainmode = plainmode
 
     def setuser(self, user):
-        if not self.updateheader(['From: ', '# User '], user):
+        if not self.updateheader(['From: ', 'Author: ', '# User '], user):
             try:
                 patchheaderat = self.comments.index('# HG changeset patch')
                 self.comments.insert(patchheaderat + 1, '# User ' + user)


More information about the Mercurial-devel mailing list