mercurial/cmd_impls/graft.py
changeset 52336 8faabe8abf66
parent 52335 0b52283d50bb
child 52337 58827d815646
--- a/mercurial/cmd_impls/graft.py	Wed Nov 20 04:23:45 2024 +0100
+++ b/mercurial/cmd_impls/graft.py	Thu Nov 28 13:22:31 2024 +0100
@@ -44,49 +44,28 @@
     # list of new nodes created by ongoing graft
     statedata[b'newnodes'] = []
 
-    cmdutil.resolve_commit_options(ui, opts)
+    # argument incompatible with followup from an interrupted operation
+    commit_args = ['edit', 'log', 'user', 'date', 'currentdate', 'currentuser']
+    nofollow_args = commit_args + ['rev']
 
+    arg_compatibilities = [
+        ('no_commit', commit_args),
+        ('stop', nofollow_args),
+        ('abort', nofollow_args),
+    ]
     cmdutil.check_at_most_one_arg(opts, 'abort', 'stop', 'continue')
+    for arg, incompatible in arg_compatibilities:
+        cmdutil.check_incompatible_arguments(opts, arg, incompatible)
+
+    cmdutil.resolve_commit_options(ui, opts)
 
     cont = False
-    if opts.get('no_commit'):
-        cmdutil.check_incompatible_arguments(
-            opts,
-            'no_commit',
-            ['edit', 'currentuser', 'currentdate', 'log'],
-        )
 
     graftstate = statemod.cmdstate(repo, b'graftstate')
 
     if opts.get('stop'):
-        cmdutil.check_incompatible_arguments(
-            opts,
-            'stop',
-            [
-                'edit',
-                'log',
-                'user',
-                'date',
-                'currentdate',
-                'currentuser',
-                'rev',
-            ],
-        )
         return "STOP", graftstate, None
     elif opts.get('abort'):
-        cmdutil.check_incompatible_arguments(
-            opts,
-            'abort',
-            [
-                'edit',
-                'log',
-                'user',
-                'date',
-                'currentdate',
-                'currentuser',
-                'rev',
-            ],
-        )
         return "ABORT", graftstate, None
     elif opts.get('continue'):
         cont = True