hgext/mq.py
changeset 22544 0d75ce895adc
parent 22522 382c2be610dc
child 22545 6a2cfa61acb0
equal deleted inserted replaced
22543:6a669d5a62b8 22544:0d75ce895adc
   200         self.parent = parent
   200         self.parent = parent
   201         # nodeid and branch are for external use by TortoiseHg and others
   201         # nodeid and branch are for external use by TortoiseHg and others
   202         self.nodeid = nodeid
   202         self.nodeid = nodeid
   203         self.branch = branch
   203         self.branch = branch
   204         self.haspatch = diffstart > 1
   204         self.haspatch = diffstart > 1
   205         self.plainmode = plainmode
   205         self.plainmode = (plainmode or
       
   206                           '# HG changeset patch' not in self.comments and
       
   207                           util.any(c.startswith('Date: ') or
       
   208                                    c.startswith('From: ')
       
   209                                    for c in self.comments))
   206 
   210 
   207     def setuser(self, user):
   211     def setuser(self, user):
   208         if not self.updateheader(['From: ', '# User '], user):
   212         if not self.updateheader(['From: ', '# User '], user):
   209             try:
   213             try:
   210                 patchheaderat = self.comments.index('# HG changeset patch')
   214                 patchheaderat = self.comments.index('# HG changeset patch')
   211                 self.comments.insert(patchheaderat + 1, '# User ' + user)
   215                 self.comments.insert(patchheaderat + 1, '# User ' + user)
   212             except ValueError:
   216             except ValueError:
   213                 if self.plainmode or self._hasheader(['Date: ']):
   217                 if self.plainmode:
   214                     self.comments = ['From: ' + user] + self.comments
   218                     self.comments = ['From: ' + user] + self.comments
   215                 else:
   219                 else:
   216                     tmp = ['# HG changeset patch', '# User ' + user]
   220                     tmp = ['# HG changeset patch', '# User ' + user]
   217                     self.comments = tmp + self.comments
   221                     self.comments = tmp + self.comments
   218         self.user = user
   222         self.user = user
   221         if not self.updateheader(['Date: ', '# Date '], date):
   225         if not self.updateheader(['Date: ', '# Date '], date):
   222             try:
   226             try:
   223                 patchheaderat = self.comments.index('# HG changeset patch')
   227                 patchheaderat = self.comments.index('# HG changeset patch')
   224                 self.comments.insert(patchheaderat + 1, '# Date ' + date)
   228                 self.comments.insert(patchheaderat + 1, '# Date ' + date)
   225             except ValueError:
   229             except ValueError:
   226                 if self.plainmode or self._hasheader(['From: ']):
   230                 if self.plainmode:
   227                     self.comments = ['Date: ' + date] + self.comments
   231                     self.comments = ['Date: ' + date] + self.comments
   228                 else:
   232                 else:
   229                     tmp = ['# HG changeset patch', '# Date ' + date]
   233                     tmp = ['# HG changeset patch', '# Date ' + date]
   230                     self.comments = tmp + self.comments
   234                     self.comments = tmp + self.comments
   231         self.date = date
   235         self.date = date
   255                 if self.comments[i].startswith(prefix):
   259                 if self.comments[i].startswith(prefix):
   256                     self.comments[i] = prefix + new
   260                     self.comments[i] = prefix + new
   257                     res = True
   261                     res = True
   258                     break
   262                     break
   259         return res
   263         return res
   260 
       
   261     def _hasheader(self, prefixes):
       
   262         '''Check if a header starts with any of the given prefixes.'''
       
   263         for prefix in prefixes:
       
   264             for comment in self.comments:
       
   265                 if comment.startswith(prefix):
       
   266                     return True
       
   267         return False
       
   268 
   264 
   269     def __str__(self):
   265     def __str__(self):
   270         s = '\n'.join(self.comments).rstrip()
   266         s = '\n'.join(self.comments).rstrip()
   271         if not s:
   267         if not s:
   272             return ''
   268             return ''