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

Re: What's cooking in git.git (May 2012, #06; Wed, 23)

From
Junio C Hamano <gitster@pobox.com>
Date
May 24, 2012, 17:01 UTC
Message-ID
<7vlikhy0l8.fsf@alter.siamese.dyndns.org>
In-Reply-To
<4FBDCE26.1080904@viscovery.net>
Johannes Sixt <j.sixt@viscovery.net> writes:
Show 22 quoted lines
> Am 5/24/2012 7:36, schrieb René Scharfe:
>> Am 24.05.2012 00:24, schrieb Junio C Hamano:
>>> * rs/maint-grep-F (2012-05-21) 4 commits
>>>    (merged to 'next' on 2012-05-23 at b24143c)
>>>   + grep: stop leaking line strings with -f
>>>   + grep: support newline separated pattern list
>>>   + grep: factor out do_append_grep_pat()
>>>   + grep: factor out create_grep_pat()
>>>
>>> "git grep -F", unlike the case where it reads from a file, did not treat
>>> individual lines in the given pattern argument as separate patterns as it
>>> should.
>> 
>> This is not specific to -F; grep(1) accepts newline-separated pattern
>> lists with -E etc. as well, as does git grep with the patches above.
>
> Shouldn't we worry that this change breaks existing users?
>
> Consider a script that generates a pattern that sometimes contains NL.
> Yes, it would not match anywhere, but what if that is a deliberate choice
> of the script writer? With this change, the script would now observe
> spurious matches where earlier there were no matches.

While I prefer to be conservative, and the scenario above may be theoretically possible, I personally find this particular "breakage" of backward compatibility is very well defensible, as the original behaviour is clearly buggy and unintuitive.

Previous: Johannes SixtNext: Junio C Hamano
Message 4 of 5 in “What's cooking in git.git (May 2012, #06; Wed, 23)”
  1. Junio C HamanoMay 23, 2012
  2. René ScharfeMay 24, 2012
  3. Johannes SixtMay 24, 2012
  4. Junio C HamanoMay 24, 2012
  5. Junio C HamanoMay 24, 2012

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.