Re: [PATCH v3] doc: clarify --follow and log.follow for git log
- From
Tamir Duberstein <tamird@gmail.com>
- Date
- May 11, 2026, 00:07 UTC
- Message-ID
- <CAJ-ks9mPzCr3obAw5cE071GNjzy_ZLzF4mQdnUbQY5H4WPw3sA@mail.gmail.com>
- In-Reply-To
- <xmqqik8u95yn.fsf@gitster.g>
On Sun, May 10, 2026 at 7:53 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 19 quoted lines
> > Tamir Duberstein <tamird@gmail.com> writes: > > > `log.follow`:: > > If `true`, `git log` will act as if the `--follow` option was used when > > + a single pathspec is given. This has the same limitations as > > + `--follow`, i.e. it cannot be used with multiple pathspecs and does not > > + work well on non-linear history. When the pathspec names a directory, > > + Git does not follow directory renames, but it still uses the same > > + traversal mode as for file rename following; see `--follow` in > > + linkgit:git-log[1]. This can be overridden by `--no-follow`. > > Saying that the feature does "not work well" on non-lenear history > is like the behaviour of the feature is "undefined" on such a > history. Quite honestly, when you do not give a single filename, > the behaviour is "undefined", either, so I do not think we want to > say what happens when the pathspec you give matches a directory. > The feature only takes a single filename on a linear history. > Anything else the feature does is "undefined" random behavour.
I observed this "undefined" behavior, which is why I started working on this patch. I think it is not reasonable to deal with undefined behavior by pretending it doesn't exist. The documentation should acknowledge and explain what happens when this option is used for all ways that it can be used.