On Wed, Aug 23, 2017 at 5:37 AM, Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> wrote: > Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> > --- > Documentation/rev-list-options.txt | 8 ++++++++ > revision.c | 2 ++ > 2 files changed, 10 insertions(+) > > diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt > index a6cf9eb380..7d860bfca1 100644 > --- a/Documentation/rev-list-options.txt > +++ b/Documentation/rev-list-options.txt > @@ -184,6 +184,14 @@ explicitly. > Pretend as if all objects mentioned by reflogs are listed on the > command line as `<commit>`. > > +--single-worktree:: > + By default, all working trees will be examined by the > + following options when there are more than one (see > + linkgit:git-worktree[1]): `--all`, `--reflog` and > + `--indexed-objects`. > + This option forces them to examine the current working tree > + only. > + > --ignore-missing:: > Upon seeing an invalid object name in the input, pretend as if > the bad input was not given. > diff --git a/revision.c b/revision.c > index d100b3a3be..6eba4131b4 100644 > --- a/revision.c > +++ b/revision.c > @@ -2251,6 +2251,8 @@ static int handle_revision_pseudo_opt(const char *submodule, > return error("invalid argument to --no-walk"); > } else if (!strcmp(arg, "--do-walk")) { > revs->no_walk = 0; > + } else if (!strcmp(arg, "--single-worktree")) { > + revs->single_worktree = 1; This is in handle_revision_pseudo_opt, that has the note /* * NOTE! * * Commands like "git shortlog" will not accept the options below * unless parse_revision_opt queues them (as opposed to erroring * out). * * When implementing your new pseudo-option, remember to * register it in the list at the top of handle_revision_opt. */ The registration needs to be done at around line 1700. But come to think of it, is it really a pseudo opt? Could it be a "real" (non pseudo) opt in handle_revision_opt? The reasoning (either way) would be of interest in the commit message, IMHO.