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')), |