hgext/mq.py
changeset 2750 8c814c1ab31e
parent 2748 752b9475a700
child 2751 7d1de4545728
equal deleted inserted replaced
2749:d13e4ffaa79d 2750:8c814c1ab31e
  1408     else:
  1408     else:
  1409         q = repo.mq
  1409         q = repo.mq
  1410     q.pop(repo, patch, force=opts['force'], update=localupdate, all=opts['all'])
  1410     q.pop(repo, patch, force=opts['force'], update=localupdate, all=opts['all'])
  1411     q.save_dirty()
  1411     q.save_dirty()
  1412     return 0
  1412     return 0
       
  1413 
       
  1414 def rename(ui, repo, patch, name=None, **opts):
       
  1415     """rename a patch
       
  1416 
       
  1417     With one argument, renames the current patch to PATCH1.
       
  1418     With two arguments, renames PATCH1 to PATCH2."""
       
  1419 
       
  1420     q = repo.mq
       
  1421 
       
  1422     if not name:
       
  1423         name = patch
       
  1424         patch = None
       
  1425 
       
  1426     if name in q.series:
       
  1427         raise util.Abort(_('A patch named %s already exists in the series file') % name)
       
  1428 
       
  1429     absdest = os.path.join(q.path, name)
       
  1430     if os.path.exists(absdest):
       
  1431         raise util.Abort(_('%s already exists') % absdest)
       
  1432     
       
  1433     if patch:
       
  1434         patch = q.lookup(patch)
       
  1435     else:
       
  1436         if not q.applied:
       
  1437             ui.write(_('No patches applied\n'))
       
  1438             return
       
  1439         patch = q.lookup('qtip')
       
  1440 
       
  1441     if ui.verbose:
       
  1442         ui.write('Renaming %s to %s\n' % (patch, name))
       
  1443     i = q.find_series(patch)
       
  1444     q.full_series[i] = name
       
  1445     q.read_series(q.full_series)
       
  1446     q.series_dirty = 1
       
  1447 
       
  1448     info = q.isapplied(patch)
       
  1449     if info:
       
  1450         q.applied[info[0]] = info[1] + ':' + name
       
  1451     q.applied_dirty = 1
       
  1452 
       
  1453     util.rename(os.path.join(q.path, patch), absdest)
       
  1454     r = q.qrepo()
       
  1455     if r:
       
  1456         wlock = r.wlock()
       
  1457         if r.dirstate.state(name) == 'r':
       
  1458             r.undelete([name], wlock)
       
  1459         r.copy(patch, name, wlock)
       
  1460         r.remove([patch], False, wlock)
       
  1461 
       
  1462     q.save_dirty()
  1413 
  1463 
  1414 def restore(ui, repo, rev, **opts):
  1464 def restore(ui, repo, rev, **opts):
  1415     """restore the queue state saved by a rev"""
  1465     """restore the queue state saved by a rev"""
  1416     rev = repo.lookup(rev)
  1466     rev = repo.lookup(rev)
  1417     q = repo.mq
  1467     q = repo.mq
  1550          [('e', 'edit', None, _('edit commit message')),
  1600          [('e', 'edit', None, _('edit commit message')),
  1551           ('m', 'message', '', _('change commit message with <text>')),
  1601           ('m', 'message', '', _('change commit message with <text>')),
  1552           ('l', 'logfile', '', _('change commit message with <file> content')),
  1602           ('l', 'logfile', '', _('change commit message with <file> content')),
  1553           ('s', 'short', None, 'short refresh')],
  1603           ('s', 'short', None, 'short refresh')],
  1554          'hg qrefresh [-e] [-m TEXT] [-l FILE] [-s]'),
  1604          'hg qrefresh [-e] [-m TEXT] [-l FILE] [-s]'),
       
  1605     'qrename':
       
  1606         (rename, [], 'hg qrename PATCH1 [PATCH2]'),
  1555     "qrestore":
  1607     "qrestore":
  1556         (restore,
  1608         (restore,
  1557          [('d', 'delete', None, 'delete save entry'),
  1609          [('d', 'delete', None, 'delete save entry'),
  1558           ('u', 'update', None, 'update queue working dir')],
  1610           ('u', 'update', None, 'update queue working dir')],
  1559          'hg qrestore [-d] [-u] REV'),
  1611          'hg qrestore [-d] [-u] REV'),