def _add_run_options(parser: argparse.ArgumentParser) -> None:
    parser.add_argument('hook', nargs='?', help='A single hook-id to run')
    parser.add_argument('--verbose', '-v', action='store_true', default=False)
    mutex_group = parser.add_mutually_exclusive_group(required=False)
    mutex_group.add_argument('--all-files', '-a', action='store_true', default=False, help='Run on all the files in the repo.')
    mutex_group.add_argument('--files', nargs='*', default=[], help='Specific filenames to run hooks on.')
    parser.add_argument('--show-diff-on-failure', action='store_true', help='When hooks fail, run `git diff` directly afterward.')
    parser.add_argument('--hook-stage', choices=C.STAGES, default='commit', help='The stage during which the hook is fired.  One of %(choices)s')
    parser.add_argument('--from-ref', '--source', '-s', help='(for usage with `--from-ref`) -- this option represents the original ref in a `from_ref...to_ref` diff expression.  For `pre-push` hooks, this represents the branch you are pushing to.  For `post-checkout` hooks, this represents the branch that was previously checked out.')
    parser.add_argument('--to-ref', '--origin', '-o', help='(for usage with `--to-ref`) -- this option represents the destination ref in a `from_ref...to_ref` diff expression.  For `pre-push` hooks, this represents the branch being pushed.  For `post-checkout` hooks, this represents the branch that is now checked out.')
    parser.add_argument('--commit-msg-filename', help='Filename to check when running during `commit-msg`')
    parser.add_argument('--remote-name', help='Remote name used by `git push`.')
    parser.add_argument('--remote-url', help='Remote url used by `git push`.')
    parser.add_argument('--checkout-type', help='Indicates whether the checkout was a branch checkout (changing branches, flag=1) or a file checkout (retrieving a file from the index, flag=0).')
def _add_run_options(parser: argparse.ArgumentParser) -> None:
    parser.add_argument('hook', nargs='?', help='A single hook-id to run')
    parser.add_argument('--verbose', '-v', action='store_true', default=False)
    mutex_group = parser.add_mutually_exclusive_group(required=False)
    mutex_group.add_argument('--all-files', '-a', action='store_true', default=False, help='Run on all the files in the repo.')
    mutex_group.add_argument('--files', nargs='*', default=[], help='Specific filenames to run hooks on.')
    parser.add_argument('--show-diff-on-failure', action='store_true', help='When hooks fail, run `git diff` directly afterward.')
    parser.add_argument('--hook-stage', choices=C.STAGES, default='commit', help='The stage during which the hook is fired.  One of %(choices)s')
    parser.add_argument('--from-ref', '--source', '-s', help='(for usage with `--from-ref`) -- this option represents the original ref in a `from_ref...to_ref` diff expression.  For `pre-push` hooks, this represents the branch you are pushing to.  For `post-checkout` hooks, this represents the branch that was previously checked out.')
    parser.add_argument('--to-ref', '--origin', '-o', help='(for usage with `--to-ref`) -- this option represents the destination ref in a `from_ref...to_ref` diff expression.  For `pre-push` hooks, this represents the branch being pushed.  For `post-checkout` hooks, this represents the branch that is now checked out.')
    parser.add_argument('--commit-msg-filename', help='Filename to check when running during `commit-msg`')
    parser.add_argument('--remote-name', help='Remote name used by `git push`.')
    parser.add_argument('--remote-url', help='Remote url used by `git push`.')
    parser.add_argument('--checkout-type', help='Indicates whether the checkout was a branch checkout (changing branches, flag=1) or a file checkout (retrieving a file from the index, flag=0).')