[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <cover.1733421037.git.geert+renesas@glider.be>
Date: Thu, 5 Dec 2024 19:16:33 +0100
From: Geert Uytterhoeven <geert+renesas@...der.be>
To: Dwaipayan Ray <dwaipayanray1@...il.com>,
Lukas Bulwahn <lukas.bulwahn@...il.com>,
Joe Perches <joe@...ches.com>,
Jonathan Corbet <corbet@....net>,
Thorsten Leemhuis <linux@...mhuis.info>,
Andy Whitcroft <apw@...onical.com>,
Niklas Söderlund <niklas.soderlund@...igine.com>,
Simon Horman <horms@...nel.org>,
Conor Dooley <conor@...nel.org>,
Miguel Ojeda <miguel.ojeda.sandonis@...il.com>,
Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Junio C Hamano <gitster@...ox.com>,
workflows@...r.kernel.org,
linux-doc@...r.kernel.org,
linux-kernel@...r.kernel.org,
Geert Uytterhoeven <geert+renesas@...der.be>
Subject: [PATCH v2 0/2] Align and increase git commit ID abbreviation guidelines and checks
Hi all,
This patch series:
- Aligns the documentation and checks to settle on a mininum of 12
characters for git commit ID abbreviations, so larger abbreviations
are no longer flagged as a warning by checkpatch.pl,
- Increase the minimum recommended abbreviation to 16 characters.
The Linux kernel repository is growing fast. Running
git-unique-abbrev[1] on a tree containing v6.13-rc1 and all stable
releases gives:
13021585 objects
4: 13021585 / 65536
5: 13021519 / 1048507
6: 7028382 / 3064402
7: 616474 / 305777
8: 39566 / 19775
9: 2452 / 1226
10: 186 / 93
11: 12 / 6
12: 0 / 0
21cf4d54d3c702ac20c6747fa6d4f64dee07dd11
21cf4d54d3ced8a3e752030e483d72997721076d
8a048bbf89528d45c604aed68f7e0f0ef957067d
8a048bbf895b1359e4a33b779ea6d7386cfe4de2
c8db0fc796454553647e11a055eed4e46676e3ed
c8db0fc7964a2c9394c17722f30e4f1420aaa8e0
d3ac4e475103c4364ecb47a6a55c114d7c42a014
d3ac4e47510ec0753ebe1e418a334ad202784aa8
d597639e2036f04f0226761e2d818b31f2db7820
d597639e203a100156501df8a0756fd09573e2de
ef91b6e893a00d903400f8e1303efc4d52b710af
ef91b6e893afc4c4ca488453ea9f19ced5fa5861
13021585 is still smaller than sqrt(16^12) = 16777216, but the safety
margin is getting smaller. E.g. my main work repo already contains +19M
objects. Hence the Birthday Paradox states that collisions of
12-character commit IDs are imminent.
Fortunately, git is smart: when the number of configured characters for
abbreviations (using core.abbrev, or --abbrev) is too small, git
automatically prints a larger hash. Obviously this only takes into
account the repository of the creator, and not the (possibly much
larger) repository of the receiver.
Due to this, patches with 13-char Fixes tags have already been seen in
the wild[2]. Unfortunately such patches are currently flagged by
checkpatch.pl (and sometimes even rejected), despite some parts of the
documentation stating that "at least 12 characters" is fine. FTR, I've
been using 16-characters commit IDs for quite a while.
Hence the first patch settles on "at least 12 chars" everywhere.
The second patch increases the minimum to 16 characters, to reduce the
risk of conflicts, now and in the near future.
Note that we standardized on 12 chars in commit d311cd44545f2f69
("checkpatch: add test for commit id formatting style in commit log") in
v3.17, when the repo had just surpassed 4M objects. Going to 16 chars
should provide enough headroom until after my official retirement ;-)
Note that I did not update Documentation/translations/.
Changes compared to v1[3]:
- Rebase on top of commit 2f07b652384969f5 ("checkpatch: always parse
orig_commit in fixes tag") in v6.13-rc1,
- Update documentation, too,
- New patch to increase the minimum to 16 characters.
Thanks for your comments!
[1] https://blog.cuviper.com/2013/11/10/how-short-can-git-abbreviate/
[2] https://lore.kernel.org/all/20241009-tamale-revisit-7d2606c5fdf3@spud
[3] "[PATCH] checkpatch: Also accept commit ids with 13-40 chars of sha1"
https://lore.kernel.org/all/62f82b0308de05f5aab913392049af15d53c777d.1701804489.git.geert+renesas@glider.be/
Geert Uytterhoeven (2):
Align git commit ID abbreviation guidelines and checks
Increase minimum git commit ID abbreviation to 16 characters
Documentation/dev-tools/checkpatch.rst | 2 +-
Documentation/doc-guide/sphinx.rst | 4 +--
Documentation/process/5.Posting.rst | 2 +-
.../process/handling-regressions.rst | 6 ++--
Documentation/process/maintainer-tip.rst | 6 ++--
Documentation/process/submitting-patches.rst | 18 ++++++------
scripts/checkpatch.pl | 28 +++++++++----------
7 files changed, 33 insertions(+), 33 deletions(-)
--
2.34.1
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Powered by blists - more mailing lists