mercurial/commands.py
changeset 28845 5a398627db92
parent 28797 9b52094bb04d
child 28866 02be5fc18c0c
equal deleted inserted replaced
28844:99a2bdad0fda 28845:5a398627db92
  3120             finally:
  3120             finally:
  3121                 tr.release()
  3121                 tr.release()
  3122         finally:
  3122         finally:
  3123             l.release()
  3123             l.release()
  3124     else:
  3124     else:
  3125         if opts.get('rev') and opts.get('index'):
       
  3126             hint = _("call 'hg debugobsolete --index' without other arguments")
       
  3127             raise error.Abort(_("cannot use --index with --rev"), hint=hint)
       
  3128         if opts['rev']:
  3125         if opts['rev']:
  3129             revs = scmutil.revrange(repo, opts['rev'])
  3126             revs = scmutil.revrange(repo, opts['rev'])
  3130             nodes = [repo[r].node() for r in revs]
  3127             nodes = [repo[r].node() for r in revs]
  3131             markers = list(obsolete.getmarkers(repo, nodes=nodes))
  3128             markers = list(obsolete.getmarkers(repo, nodes=nodes))
  3132             markers.sort(key=lambda x: x._data)
  3129             markers.sort(key=lambda x: x._data)
  3133         else:
  3130         else:
  3134             markers = obsolete.getmarkers(repo)
  3131             markers = obsolete.getmarkers(repo)
  3135 
  3132 
  3136         for i, m in enumerate(markers):
  3133         markerstoiter = markers
       
  3134         isrelevant = lambda m: True
       
  3135         if opts.get('rev') and opts.get('index'):
       
  3136             markerstoiter = obsolete.getmarkers(repo)
       
  3137             markerset = set(markers)
       
  3138             isrelevant = lambda m: m in markerset
       
  3139 
       
  3140         for i, m in enumerate(markerstoiter):
       
  3141             if not isrelevant(m):
       
  3142                 # marker can be irrelevant when we're iterating over a set
       
  3143                 # of markers (markerstoiter) which is bigger than the set
       
  3144                 # of markers we want to display (markers)
       
  3145                 # this can happen if both --index and --rev options are
       
  3146                 # provided and thus we need to iterate over all of the markers
       
  3147                 # to get the correct indices, but only display the ones that
       
  3148                 # are relevant to --rev value
       
  3149                 continue
  3137             ind = i if opts.get('index') else None
  3150             ind = i if opts.get('index') else None
  3138             cmdutil.showmarker(ui, m, index=ind)
  3151             cmdutil.showmarker(ui, m, index=ind)
  3139 
  3152 
  3140 @command('debugpathcomplete',
  3153 @command('debugpathcomplete',
  3141          [('f', 'full', None, _('complete an entire path')),
  3154          [('f', 'full', None, _('complete an entire path')),