mercurial/commands.py
changeset 28867 ffcc649a4e8f
parent 28866 02be5fc18c0c
child 28868 445a25bb70be
equal deleted inserted replaced
28866:02be5fc18c0c 28867:ffcc649a4e8f
  3061         except TypeError:
  3061         except TypeError:
  3062             raise error.Abort('changeset references must be full hexadecimal '
  3062             raise error.Abort('changeset references must be full hexadecimal '
  3063                              'node identifiers')
  3063                              'node identifiers')
  3064 
  3064 
  3065     if opts.get('delete'):
  3065     if opts.get('delete'):
  3066         try:
  3066         indices = []
  3067             indices = [int(v) for v in opts.get('delete')]
  3067         for v in opts.get('delete'):
  3068         except ValueError:
  3068             try:
  3069             raise error.Abort(_('invalid index value'),
  3069                 indices.append(int(v))
  3070                               hint=_('use integers fro indices'))
  3070             except ValueError:
       
  3071                 raise error.Abort(_('invalid index value: %r') % v,
       
  3072                                   hint=_('use integers for indices'))
  3071 
  3073 
  3072         if repo.currenttransaction():
  3074         if repo.currenttransaction():
  3073             raise error.Abort(_('Cannot delete obsmarkers in the middle '
  3075             raise error.Abort(_('cannot delete obsmarkers in the middle '
  3074                                 'of transaction.'))
  3076                                 'of transaction.'))
  3075 
  3077 
  3076         w = repo.wlock()
  3078         with repo.lock():
  3077         l = repo.lock()
  3079             n = repo.obsstore.delete(indices)
  3078         try:
  3080             ui.write(_('deleted %i obsolescense markers\n') % n)
  3079             tr = repo.transaction('debugobsolete')
  3081 
  3080             try:
       
  3081                 n = repo.obsstore.delete(indices)
       
  3082                 ui.write(_('Deleted %i obsolescense markers\n') % n)
       
  3083                 tr.close()
       
  3084             finally:
       
  3085                 tr.release()
       
  3086         finally:
       
  3087             l.release()
       
  3088             w.release()
       
  3089         return
  3082         return
  3090 
  3083 
  3091     if precursor is not None:
  3084     if precursor is not None:
  3092         if opts['rev']:
  3085         if opts['rev']:
  3093             raise error.Abort('cannot select revision when creating marker')
  3086             raise error.Abort('cannot select revision when creating marker')