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

Re: [PATCHv2 2/2] git-patch-id: do not trip over "no newline" markers

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
Feb 18, 2011, 08:02 UTC
Message-ID
<4D5E278F.2010509@drmicha.warpmail.net>
In-Reply-To
<20110218041609.GA12348@sigill.intra.peff.net>
Jeff King venit, vidit, dixit 18.02.2011 05:16:
Show 16 quoted lines
> On Thu, Feb 17, 2011 at 08:44:42AM +0100, Michael J Gruber wrote:
> 
>> --- a/builtin/patch-id.c
>> +++ b/builtin/patch-id.c
>> @@ -73,6 +73,8 @@ int get_one_patchid(unsigned char *next_sha1, git_SHA_CTX *ctx)
>>  			p += 7;
>>  		else if (!memcmp(line, "From ", 5))
>>  			p += 5;
>> +		else if (!memcmp(line, "\\ ", 2) && strlen(line)>=12)
>> +			continue;
> 
> Wow, that's pretty obscure. I wonder if the test should be factored out
> into line_is_no_newline_at_end_of_file() (or surely there is some more
> sensible name), and used by both apply and patch-id. Along with a nice
> comment (which I see apply already has) describing what in the world the
> magic number 12 means.

So, where do you suggest it should go? As far as I can see, we have two places reading these markers (the above builtins) and two places writing them (diff.c, xdiff/xutils.c), at least for git-core. (git-gui's diff.tcl has its own strict check etc.)

I would opt for putting a more detailed explanation in the commit message (reasoning + ref. to apply.c) rather then trying to factor this.

After all, our code is largely undocumented as far as inline documentation goes (it has frustrated me a few times), and the more comprehensive documentation are the commit messages which git blame points you to.

Michael
Previous: Jeff KingNext: Michael J Gruber
Message 11 of 18 in “Why does git-patch-id(1) sometimes print two lines, one of which has commit = 0000000000000000000000000000000000000000”
  1. Ævar Arnfjörð BjarmasonFeb 16, 2011
  2. Michael J GruberFeb 16, 2011
  3. 1/2 git-patch-id: test for "no newline" markersMichael J Gruber, Feb 16, 2011
  4. 2/2 git-patch-id: do not trip over "no newline" markersMichael J Gruber, Feb 16, 2011
  5. Junio C HamanoFeb 16, 2011
  6. 1/2 git-patch-id: test for "no newline" markersMichael J Gruber, Feb 17, 2011
  7. Jakub NarebskiFeb 17, 2011
  8. Michael J GruberFeb 17, 2011
  9. 2/2 git-patch-id: do not trip over "no newline" markersMichael J Gruber, Feb 17, 2011
  10. Jeff KingFeb 18, 2011
  11. Michael J GruberFeb 18, 2011
  12. 1/2 git-patch-id: test for "no newline" markersMichael J Gruber, Feb 18, 2011
  13. 2/2 git-patch-id: do not trip over "no newline" markersMichael J Gruber, Feb 18, 2011
  14. Jeff KingFeb 18, 2011
  15. Michael J GruberFeb 18, 2011
  16. Jeff KingFeb 18, 2011
  17. Jakub NarebskiFeb 18, 2011
  18. Jeff KingFeb 18, 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.