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

Re: [RFC PATCH 0/2] extend --abbrev support to diff-patch format

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 10, 2020, 15:15 UTC
Message-ID
<xmqqy2mmcz1e.fsf@gitster.c.googlers.com>
In-Reply-To
<20200810123148.GB17119@danh.dev>
Đoàn Trần Công Danh  <congdanhqx@gmail.com> writes:
Show 30 quoted lines
> Reading both of your two's emails, I think this one could be used:
> I'll resend this serie if this serie is deemed useful with this
> explaination.
>
> 	diff: index-line: make object name's abbrev length configurable
>
> 	There are some projects that want to archive and track only
> 	released version of other software projects. They also want
> 	to backport some changes into those versions unsupported by
> 	upstream. Most of git hosting services support some method to
> 	download patches without cloning the full (potentially large)
> 	repository and/or fiddling with git partial-clone or
> 	sparse-checkout.
>
> 	Most of those git hosting services generate those patches with
> 	git-format-patch(1) or something alike. Due to its large
> 	amount of objects, their object names' abbreviation in the
> 	index-line is usually long but not full.
>
> 	A lot of those patches couldn't be applied cleanly to old
> 	versions of said software, thus requires some changes from
> 	developer and they needs to be regenerated from their trimmed
> 	tree. Because the archive tree has significantly fewer
> 	objects, the abbreviation in the index line is usually shorter
> 	than the original patch. Thus, it generates some noise when
> 	said developers try to compare the new patch with the original
> 	patch if there's an exact file-hunk match.
>
> 	Make the object name's abbreviation length configurable to
> 	lower those noise.

I agree with Peff that with the above as the sole motivating use case, the "--full-index" option is the right approach. It is a much more robust solution than "--abbrev=16 would be long enough for all project participants to avoid length drift". IOW these four paragraphs do not argue _for_ this change, at least to me.

On the other hand, I think you could argue that "--full-index" is merely a synonym for "--abbrev=40", and the patch fixes the inconsistency between the object names on the "index" line, which can choose only between the default abbrev length and the full abbrev length, and all the other places we show object names, which uniformly honor the "--abbrev" option.

Show 6 quoted lines
> 	<Below is the  note in 2/2, I don't know if it's worth put
> 	into commit message>
>
> 	To preserve backward compatibility with old script that specify
> 	both --full-index and --abbrev, always shows full object id
> 	if --full-index is specified.
Previous: Đoàn Trần Công DanhNext: Jeff King
Message 7 of 41 in “extend --abbrev support to diff-patch format”
  1. 0/2 extend --abbrev support to diff-patch formatĐoàn Trần Công Danh, Aug 9, 2020
  2. 1/2 revision: differentiate if --no-abbrev asked explicitlyĐoàn Trần Công Danh, Aug 9, 2020
  3. 2/2 diff: extend --abbrev support to diff-patch formatĐoàn Trần Công Danh, Aug 9, 2020
  4. Junio C HamanoAug 9, 2020
  5. Jeff KingAug 10, 2020
  6. Đoàn Trần Công DanhAug 10, 2020
  7. Junio C HamanoAug 10, 2020
  8. Jeff KingAug 10, 2020
  9. Đoàn Trần Công DanhAug 11, 2020
  10. Jeff KingAug 11, 2020
  11. Đoàn Trần Công DanhAug 11, 2020
  12. Junio C HamanoAug 10, 2020
  13. 0/2 diff: index-line: respect --abbrev in object's nameĐoàn Trần Công Danh, Aug 11, 2020
  14. 1/2 revision: differentiate if --no-abbrev asked explicitlyĐoàn Trần Công Danh, Aug 11, 2020
  15. Junio C HamanoAug 11, 2020
  16. 2/2 diff: index-line: respect --abbrev in object's nameĐoàn Trần Công Danh, Aug 11, 2020
  17. 0/2 diff: index-line: respect --abbrev in object's nameĐoàn Trần Công Danh, Aug 14, 2020
  18. 1/2 revision: differentiate if --no-abbrev asked explicitlyĐoàn Trần Công Danh, Aug 14, 2020
  19. Junio C HamanoAug 14, 2020
  20. Đoàn Trần Công DanhAug 14, 2020
  21. Junio C HamanoAug 14, 2020
  22. Đoàn Trần Công DanhAug 14, 2020
  23. Junio C HamanoAug 19, 2020
  24. 2/2 diff: index-line: respect --abbrev in object's nameĐoàn Trần Công Danh, Aug 14, 2020
  25. SZEDER GáborAug 14, 2020
  26. Junio C HamanoAug 14, 2020
  27. Junio C HamanoAug 14, 2020
  28. brian m. carlsonAug 15, 2020
  29. Đoàn Trần Công DanhAug 15, 2020
  30. Junio C HamanoAug 17, 2020
  31. Junio C HamanoAug 20, 2020
  32. 0/2 diff: index-line: respect --abbrev in object's nameĐoàn Trần Công Danh, Aug 20, 2020
  33. 2/2 diff: index-line: respect --abbrev in object's nameĐoàn Trần Công Danh, Aug 20, 2020
  34. Junio C HamanoAug 20, 2020
  35. 1/2 t4013: improve diff-post-processor logicĐoàn Trần Công Danh, Aug 20, 2020
  36. Junio C HamanoAug 20, 2020
  37. Đoàn Trần Công DanhAug 21, 2020
  38. Junio C HamanoAug 21, 2020
  39. 0/2 diff: index-line: respect --abbrev in object's nameĐoàn Trần Công Danh, Aug 21, 2020
  40. 2/2 diff: index-line: respect --abbrev in object's nameĐoàn Trần Công Danh, Aug 21, 2020
  41. 1/2 t4013: improve diff-post-processor logicĐoàn Trần Công Danh, Aug 21, 2020

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.