# HG changeset patch # User Kostia Balytskyi # Date 1459549231 25200 # Node ID 2637d6ad3e61cc8bcc16529a5a6124169f41c94f # Parent d30fdd6d1bf7c079f1d297ff8e8a1fa56018ec63 commands: disallow 'hg debugobsolete --index --rev ' A bug in the original --index implementation. The goal of --index is to allow unique obsmarker identification that would be consistent between invocations of this command in the unchanged repo. Further goal is to use this index to delete arbitrary obsmarkers. So calling --index together with --rev would cause obsmarker indices to be different than just calling --index. This is not desired and current pattern for getting the index of an interesting obsmarker is: `$ hg debugobsolete --index | grep `. It would clearly be better if we could somehow compute a hash of an obsmarker and use it to identify the one we want to delete, but it seems a bit too heavy for our current goals, so we can do this later if we want. diff -r d30fdd6d1bf7 -r 2637d6ad3e61 mercurial/commands.py --- a/mercurial/commands.py Tue Apr 05 18:10:33 2016 +0100 +++ b/mercurial/commands.py Fri Apr 01 15:20:31 2016 -0700 @@ -3095,6 +3095,9 @@ finally: l.release() else: + if opts.get('rev') and opts.get('index'): + hint = _("call 'hg debugobsolete --index' without other arguments") + raise error.Abort(_("cannot use --index with --rev"), hint=hint) if opts['rev']: revs = scmutil.revrange(repo, opts['rev']) nodes = [repo[r].node() for r in revs]