equal
deleted
inserted
replaced
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) |