On Sat, Mar 11, 2023 at 09:06:08AM -0500, Sasha Levin wrote:
I suppose that if I had a way to know if a certain a commit is part of a series, I could either take all of it or none of it, but I don't think I have a way of doing that by looking at a commit in Linus' tree (suggestions welcome, I'm happy to implement them).
Well, this is why I think it is a good idea to have a link to the patch series in lore. I know Linus doesn't like it, claiming it doesn't add any value, but I have to disagree. It adds two bits of value.
First, if there is any discussion on the review of the patch before it goes in, the lore link gives you access to that --- and if people have a back-lick in the cover letter of version N to the cover letter of version N-1, it allows someone doing code archeology to find all of the discussions around the patch series in the lore archives.
Secondly, the lore link will allow you to figure out whether or not the patch is part of a series; b4 can figure this out by looking at the in-reply-to headers, and lore will chain the patch series together, so if the commit contains a lore link to the patch, the AUTOSEL script could use that to find out whether the patch is part of the series.
And this is really easy to do. All you need is the following in .git/hooks/applypatch-msg:
#!/bin/sh # For .git/hooks/applypatch-msg # . git-sh-setup perl -pi -e 's|^Message-Id:\s*<?([^>]+)>?$|Link: https://lore.kernel.org/r/%241%7Cg;' "$1" test -x "$GIT_DIR/hooks/commit-msg" && exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"} :
Cheers,
- Ted
P.S. There was a recent patch series where I noticed that I would be screwed if AUTOSEL would only take patch 2/2 and not patch 1/2. I dealt with that though by adding an explicit "Cc: stable@kernel.org". So that's the other way to avoid breakage; if people were universally careful about adding "Cc: stable@kernel.org" tags, then we wouldn't need AUTOSEL at all.
And this is another place where I break with commonly received wisdom about "Thou Shalt Never, Never Rewind The Git Branch". Personally, if I find that I missed a Cc: stable tag, rewinding the branch to add edit the trailers is *far* better a tradeoff than adhering to some religious rule about never rewinding git branches. Of course, I can get away with that since I don't have people basing their branches on my branch. But I've seen people who will self-righteously proclaim non-rewinding git branches as the One True Way to do git, and I profoundly disagree with that point of view.