hgext/mq.py
branchstable
changeset 27918 c7cd551f07d0
parent 27865 f6979b8f33c1
child 27919 db24d6888896
equal deleted inserted replaced
27917:97e0dc6d248c 27918:c7cd551f07d0
   394             repo.ui.restoreconfig(phasebackup)
   394             repo.ui.restoreconfig(phasebackup)
   395 
   395 
   396 class AbortNoCleanup(error.Abort):
   396 class AbortNoCleanup(error.Abort):
   397     pass
   397     pass
   398 
   398 
   399 def makepatchname(existing, title, fallbackname):
       
   400     """Return a suitable filename for title, adding a suffix to make
       
   401     it unique in the existing list"""
       
   402     namebase = re.sub('[\s\W_]+', '_', title.lower()).strip('_')
       
   403     if not namebase:
       
   404         namebase = fallbackname
       
   405     name = namebase
       
   406     i = 0
       
   407     while name in existing:
       
   408         i += 1
       
   409         name = '%s__%s' % (namebase, i)
       
   410     return name
       
   411 
       
   412 class queue(object):
   399 class queue(object):
   413     def __init__(self, ui, baseui, path, patchdir=None):
   400     def __init__(self, ui, baseui, path, patchdir=None):
   414         self.basepath = path
   401         self.basepath = path
   415         try:
   402         try:
   416             fh = open(os.path.join(path, 'patches.queue'))
   403             fh = open(os.path.join(path, 'patches.queue'))
  1123             if os.path.isdir(self.join(name)):
  1110             if os.path.isdir(self.join(name)):
  1124                 raise error.Abort(_('"%s" already exists as a directory')
  1111                 raise error.Abort(_('"%s" already exists as a directory')
  1125                                  % name)
  1112                                  % name)
  1126             else:
  1113             else:
  1127                 raise error.Abort(_('patch "%s" already exists') % name)
  1114                 raise error.Abort(_('patch "%s" already exists') % name)
       
  1115 
       
  1116     def makepatchname(self, title, fallbackname):
       
  1117         """Return a suitable filename for title, adding a suffix to make
       
  1118         it unique in the existing list"""
       
  1119         namebase = re.sub('[\s\W_]+', '_', title.lower()).strip('_')
       
  1120         if not namebase:
       
  1121             namebase = fallbackname
       
  1122         name = namebase
       
  1123         i = 0
       
  1124         while name in self.fullseries:
       
  1125             i += 1
       
  1126             name = '%s__%s' % (namebase, i)
       
  1127         return name
  1128 
  1128 
  1129     def checkkeepchanges(self, keepchanges, force):
  1129     def checkkeepchanges(self, keepchanges, force):
  1130         if force and keepchanges:
  1130         if force and keepchanges:
  1131             raise error.Abort(_('cannot use both --force and --keep-changes'))
  1131             raise error.Abort(_('cannot use both --force and --keep-changes'))
  1132 
  1132 
  2095                                            '%d')
  2095                                            '%d')
  2096                                          % (r, lastparent))
  2096                                          % (r, lastparent))
  2097                     lastparent = p1
  2097                     lastparent = p1
  2098 
  2098 
  2099                     if not patchname:
  2099                     if not patchname:
  2100                         patchname = makepatchname(self.fullseries,
  2100                         patchname = self.makepatchname(
  2101                             repo[r].description().split('\n', 1)[0],
  2101                             repo[r].description().split('\n', 1)[0],
  2102                             '%d.diff' % r)
  2102                             '%d.diff' % r)
  2103                     checkseries(patchname)
  2103                     checkseries(patchname)
  2104                     self.checkpatchname(patchname, force)
  2104                     self.checkpatchname(patchname, force)
  2105                     self.fullseries.insert(0, patchname)
  2105                     self.fullseries.insert(0, patchname)