hgext/shelve.py
changeset 27287 c9ceea3f2d8e
parent 27198 7df042d0784f
child 27288 c14af2d4b08c
equal deleted inserted replaced
27286:528cf1a73ae5 27287:c9ceea3f2d8e
   614 
   614 
   615        Timestamp in seconds is used to decide order of backups. More
   615        Timestamp in seconds is used to decide order of backups. More
   616        than ``maxbackups`` backups are kept, if same timestamp
   616        than ``maxbackups`` backups are kept, if same timestamp
   617        prevents from deciding exact order of them, for safety.
   617        prevents from deciding exact order of them, for safety.
   618     """
   618     """
       
   619     wlock = repo.wlock()
       
   620     try:
       
   621         return _dounshelve(ui, repo, *shelved, **opts)
       
   622     finally:
       
   623         lockmod.release(wlock)
       
   624 
       
   625 def _dounshelve(ui, repo, *shelved, **opts):
   619     abortf = opts['abort']
   626     abortf = opts['abort']
   620     continuef = opts['continue']
   627     continuef = opts['continue']
   621     if not abortf and not continuef:
   628     if not abortf and not continuef:
   622         cmdutil.checkunfinished(repo)
   629         cmdutil.checkunfinished(repo)
   623 
   630 
   654 
   661 
   655     if not shelvedfile(repo, basename, 'patch').exists():
   662     if not shelvedfile(repo, basename, 'patch').exists():
   656         raise error.Abort(_("shelved change '%s' not found") % basename)
   663         raise error.Abort(_("shelved change '%s' not found") % basename)
   657 
   664 
   658     oldquiet = ui.quiet
   665     oldquiet = ui.quiet
   659     wlock = lock = tr = None
   666     lock = tr = None
   660     forcemerge = ui.backupconfig('ui', 'forcemerge')
   667     forcemerge = ui.backupconfig('ui', 'forcemerge')
   661     try:
   668     try:
   662         ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), 'unshelve')
   669         ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), 'unshelve')
   663         wlock = repo.wlock()
       
   664         lock = repo.lock()
   670         lock = repo.lock()
   665 
   671 
   666         tr = repo.transaction('unshelve', report=lambda x: None)
   672         tr = repo.transaction('unshelve', report=lambda x: None)
   667         oldtiprev = len(repo)
   673         oldtiprev = len(repo)
   668 
   674 
   753         _aborttransaction(repo)
   759         _aborttransaction(repo)
   754     finally:
   760     finally:
   755         ui.quiet = oldquiet
   761         ui.quiet = oldquiet
   756         if tr:
   762         if tr:
   757             tr.release()
   763             tr.release()
   758         lockmod.release(lock, wlock)
   764         lockmod.release(lock)
   759         ui.restoreconfig(forcemerge)
   765         ui.restoreconfig(forcemerge)
   760 
   766 
   761 @command('shelve',
   767 @command('shelve',
   762          [('A', 'addremove', None,
   768          [('A', 'addremove', None,
   763            _('mark new/missing files as added/removed before shelving')),
   769            _('mark new/missing files as added/removed before shelving')),