[PATCH 5 of 8] mq: make patchheader .plainmode more reliable

Mads Kiilerich mads at kiilerich.com
Tue Sep 23 20:00:06 CDT 2014


# HG changeset patch
# User Mads Kiilerich <madski at unity3d.com>
# Date 1411225616 -7200
#      Sat Sep 20 17:06:56 2014 +0200
# Node ID 39cc9d328c6e61f631ae4f96b5bb0702f3145d39
# Parent  889f7da574226e636d689fa4dd425b2b1fbb5ac5
mq: make patchheader .plainmode more reliable

Instead of having to make extra checks whenever we use .plainmode, let the
initial value consider the actual patch header content.

diff --git a/hgext/mq.py b/hgext/mq.py
--- a/hgext/mq.py
+++ b/hgext/mq.py
@@ -202,7 +202,11 @@ class patchheader(object):
         self.nodeid = nodeid
         self.branch = branch
         self.haspatch = diffstart > 1
-        self.plainmode = plainmode
+        self.plainmode = (plainmode or
+                          '# HG changeset patch' not in self.comments and
+                          util.any(c.startswith('Date: ') or
+                                   c.startswith('From: ')
+                                   for c in self.comments))
 
     def setuser(self, user):
         if not self.updateheader(['From: ', '# User '], user):
@@ -210,7 +214,7 @@ class patchheader(object):
                 patchheaderat = self.comments.index('# HG changeset patch')
                 self.comments.insert(patchheaderat + 1, '# User ' + user)
             except ValueError:
-                if self.plainmode or self._hasheader(['Date: ']):
+                if self.plainmode:
                     self.comments = ['From: ' + user] + self.comments
                 else:
                     tmp = ['# HG changeset patch', '# User ' + user]
@@ -223,7 +227,7 @@ class patchheader(object):
                 patchheaderat = self.comments.index('# HG changeset patch')
                 self.comments.insert(patchheaderat + 1, '# Date ' + date)
             except ValueError:
-                if self.plainmode or self._hasheader(['From: ']):
+                if self.plainmode:
                     self.comments = ['Date: ' + date] + self.comments
                 else:
                     tmp = ['# HG changeset patch', '# Date ' + date]
@@ -258,14 +262,6 @@ class patchheader(object):
                     break
         return res
 
-    def _hasheader(self, prefixes):
-        '''Check if a header starts with any of the given prefixes.'''
-        for prefix in prefixes:
-            for comment in self.comments:
-                if comment.startswith(prefix):
-                    return True
-        return False
-
     def __str__(self):
         s = '\n'.join(self.comments).rstrip()
         if not s:


More information about the Mercurial-devel mailing list