When viewing a diff using git diff
, each change starts with line like:
@@ -28,41 +20,10 @@ namespace ConsoleApplication1
For C, the final part is quite descriptive – it shows for example the function in which the change occurred. But for C#, it only ever shows the namespace, which isn't very useful. I think that's because it shows last line that isn't indented. Is there a way how to configure this?
I have found it, the line is called hunk header and the documentation says how to customize it:
Defining a custom hunk-header
Each group of changes (called a "hunk") in the textual diff output is prefixed with a line of the form:
@@ -k,l +n,m @@ TEXT
This is called a hunk header. The "TEXT" portion is by default a line that begins with an alphabet, an underscore or a dollar sign; this matches what GNU
diff -p
output uses. This default selection however is not suited for some contents, and you can use a customized pattern to make a selection.First, in .gitattributes, you would assign the
diff
attribute for paths.*.tex diff=tex
Then, you would define a "diff.tex.xfuncname" configuration to specify a regular expression that matches a line that you would want to appear as the hunk header "TEXT". Add a section to your
$GIT_DIR/config
file (or$HOME/.gitconfig
file) like this:[diff "tex"] xfuncname = "^(\\\\(sub)*section\\{.*)$"
Note. A single level of backslashes are eaten by the configuration file parser, so you would need to double the backslashes; the pattern above picks a line that begins with a backslash, and zero or more occurrences of sub followed by section followed by open brace, to the end of line.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With