git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: log: option "--follow" not the default for a single file?

From
Jeff King <peff@peff.net>
Date
Dec 1, 2011, 20:36 UTC
Message-ID
<20111201203626.GA3659@sigill.intra.peff.net>
In-Reply-To
<CAN0XMOKrCovkmmdqu2GjsDof0wehfbf5a0EQuPo0q7GQaJ=GRQ@mail.gmail.com>
On Thu, Dec 01, 2011 at 09:28:31PM +0100, Ralf Thielow wrote:
Show 6 quoted lines
> > It's possible, but it is changing the meaning of "git log foo". With
> > the current code, even if "foo" is currently a file, it will match
> > "foo/bar" in a prior revision. Switching this to "--follow" will not.
> 
> Why does it actually match both things? I think that's
> maybe wrong.

Because that's what the path argument to "git log" is designed to do -- limit revision traversal based on pathspecs.

You can argue that the "--follow" semantics are more meaningful, but it doesn't change the fact that it is a behavior change. We have to consider not only backwards compatibility, but also the confusing-ness of an inconsistent interface where:

  git log foo bar
will treat "foo" as a pathspec, but:
  git log foo
will treat it as a file.
> Also I can't use "git log" with another
> file/folder doesn't exists but in another revision. What actually
> exists is the file and that's imho the only thing that should match.
You can:
  git log -- existed-long-ago

As a syntax shortcut, you can drop the "--". However, there is some ambiguity with revision arguments, so git allows path arguments without a "--" only when they exist in the filesystem (_not_ in a particular revision).

-Peff
Previous: Ralf Thielow
Message 7 of 7 in “log: option "--follow" not the default for a single file?”
  1. Ralf ThielowNov 29, 2011
  2. Jeff KingNov 30, 2011
  3. Junio C HamanoNov 30, 2011
  4. Ralf ThielowNov 30, 2011
  5. Jeff KingDec 1, 2011
  6. Ralf ThielowDec 1, 2011
  7. Jeff KingDec 1, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.