Hey everyone,
Recently, while looking at a Rust patch [1] for the Linux kernel, I had an idea to improve the hunk header for Rust code. The patch's hunk header is the function defined above the addition. To me it doesn't provide much value in giving context; it has been a while since I last looked at that file. It would be much more useful in this case to show the context `pub unsafe trait FromBytes {` instead. This is because the function that's being added is added to that trait.
In the general case it still is useful to show the function context when the contents of a function are changed. Ideally, it would be possible to show both the `impl` block and the function signature.
I have no knowledge of the inner workings of git, so this might be a tall ask. But would it be possible to implement having multi-line hunk headers and have a more advanced selection algorithm? AFAIK at the moment a regex is used to extract the header, I think that would still be sufficient for this case, if the `impl` block header is searched for after the function signature.
My current solution to reviewing a patch like this is either opening the file and scrolling to the change location. This isn't possible if earlier patches in a series already changed the file. In that case the only option is to create a new worktree and apply the patch series. It would be great if I didn't have to do this for simple things.
Cheers, Benno
[1]: https://lore.kernel.org/all/20251216-transmute-v2-1-b23e5277ad02@google.com/