Show page source of git-qselect.1.manpage #120692

=== Manual Pages: Section 1
{{{ pre
GIT-QSELECT(1)                  Git-MQ Commands                 GIT-QSELECT(1)

NAME
       git-qselect - manage the active guard state of a patch queue

SYNOPSIS
       git qselect [-s | --series] [-v | --verbose]
       git qselect [-n | --none] [--pop] [--reapply] [<guard> ...]

DESCRIPTION
       The  git qselect  command is used to manage the active guard state of a
       patch queue, and  so,  in  conjunction  with  the  git qguard  command,
       control the selection of patches which may be pushed.

       Depending  on  the  combination of options and arguments specified, the
       git qselect command supports three distinct modes of operation, namely,
       in order of precedence from highest to lowest:—

       1.  Invoked  when  the -n (or --none) option, or any set of one or more
           <guard> arguments  is  specified,  the  -n (or --none)  option,  if
           specified,  initially  ensures that any currently active guards are
           deactivated; the active guard state is then set  to  exactly  match
           any particular set of <guard> arguments which are specified.

           Note that, in this highest precedence mode of operation, the effect
           of <guard> arguments is not cumulative; thus, specification of  the
           -n (or --none)  option  together  with any non‐empty set of <guard>
           arguments, while permitted, is effectively redundant.  However, the
           -n (or --none)  option  is  required,  when  the intent is to clear
           currently‐active guards,  and  leave  the  queue  with  all  guards
           deactivated;  in  this  case,  the  -n (or --none)  option  must be
           specified, with no accompanying set of <guard> arguments.

       2.  Invoked only when the  -s (or --series)  option  is  specifed,  and
           neither  the  -n (or --none)  option,  nor  any <guard> argument is
           present, the command will display an alpha‐numerically sorted  list
           of  guards  which  have been defined by the git qguard command, and
           recorded within the series file, regardless  of  the  active  guard
           state of the patch queue.

           The  display format, in this mode of operation, may be agumented to
           include a count of patches to which each guard  is  assigned,  (and
           also  a  count  of  patches  to which no guards have been assigned,
           designated by the reserved pseudo‐guard name “NONE”), by specifying
           the -v (or --verbose) option, in conjunction with -s (or --series).

       3.  Invoked   when   no   <guard>   arguments   are,  and  neither  the
           -n (or --none)  option,  nor   the   -s (or --series)   option   is
           specified, this lowest precedence mode of operation simply produces
           a display of the currently active guards, if any, or  reports  that
           no guards are active, otherwise.

       Note  that  it is possible for the git qselect, and git qguard commands
       to modify the guard state of  applied  patches,  without  changing  the
       applied state of the patch series; invoking git qselect with the --pop,
       or --reapply options modifies this behaviour.

OPTIONS
       -n, --none
           Selects the  highest  precedence  mode  of  operation,  and  causes
           deactivation of any currently active guards.

       --pop
           In  the  case where guarded patches, (in the prevailing guard state
           after specified changes, if any, have been instated),  precede  the
           topmost  applied  patch,  pop  patches from the stack until no such
           patches remain within the applied series.

       --reapply
           Note the identity of the topmost applied patch, and proceed as  for
           the  --pop  option; then, provided the former topmost patch remains
           unguarded, in the  currently  active  guard  state,  push  patches,
           skipping any which are guarded, until the formerly identified patch
           again becomes topmost.

       -s, --series
           Ignored if any <guard> argument,  or  the  --none  option  is  also
           specified;  otherwise  selects  the intermediate precedence mode of
           operation, to display a list of all guards which have been  defined
           in the series file.

       -v, --verbose
           In  the  case  where the effect of the --series option is dominant,
           include patch counts for each  defined  guard,  and  the  tally  of
           unguarded patches, in the displayed list.

EXIT STATUS
       On successful completion, git qselect reports an exit status code of 0.
       Any non‐zero exit status code indicates that an error occurred.

COMPARISON WITH MERCURIAL QUEUES
       Inspired by, and for the most part based on behavioural observation  of
       Mercurial's MQ    extension,    the    git qselect   command   exhibits
       fundamentally the same behaviour as its hg qselect counterpart.

CAVEATS AND BUGS
       It may be observed that certain combinations of  options,  and  <guard>
       arguments make no sense.  Allowing execution to continue, when any such
       nonsensical  combination  is  specified,  may  be  considered  a   bug.
       However,  this  is  not caught; rather, execution does continue, on the
       basis of selection of the highest precedence applicable operating mode,
       and inconsistently specified options are silently ignored.

AUTHOR
       Copyright (C) 2019, by Keith Marshall

       This  man  page was written by Keith Marshall <keith@users.osdn.me>, to
       accompany the Git-MQ program suite.  It is published under the terms of
       the  GNU Free Documentation Licence, version 1.3, (or any later version
       published by the Free Software Foundation), with no Invariant Sections,
       no Front‐Cover Texts, and no Back‐Cover Texts.

       The  Git‐MQ  program suite itself is distibruted under the terms of the
       GNU General Public Licence, version 3, (or any later version  published
       by the Free Software Foundation).

       Copies  of  the  GNU Free Documentation Licence, and of the GNU General
       Public Licence, are included within the Git‐MQ source distribution,  in
       the files FDL-1.3, and LICENCE, respectively.

SEE ALSO
       git-qguard(1), git-qpop(1), git-qpush(1), git-qseries(1)

Git-MQ 1.0                        31-Mar-2022                   GIT-QSELECT(1)
}}}
A copy of the above, in PDF format, is [https://osdn.net/users/keith/pf/git-mq/wiki/git-qselect.1.manpage/attach/git-qselect.1.pdf available here].