Per-path attribute based hunk header selection.
authorJunio C Hamano <gitster@pobox.com>
Fri, 6 Jul 2007 07:45:10 +0000 (00:45 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 6 Jul 2007 08:20:47 +0000 (01:20 -0700)
commitf258475a6ede3617ae768b69e33f78cbab8312de
tree59c6942cbdbba68b0858ec0c92649a3d486e8dca
parent30b250104d9307e1225031c7fc39b66643265ed1
Per-path attribute based hunk header selection.

This makes"diff -p" hunk headers customizable via gitattributes mechanism.
It is based on Johannes's earlier patch that allowed to define a single
regexp to be used for everything.

The mechanism to arrive at the regexp that is used to define hunk header
is the same as other use of gitattributes.  You assign an attribute, funcname
(because "diff -p" typically uses the name of the function the patch is about
as the hunk header), a simple string value.  This can be one of the names of
built-in pattern (currently, "java" is defined) or a custom pattern name, to
be looked up from the configuration file.

  (in .gitattributes)
  *.java   funcname=java
  *.perl   funcname=perl

  (in .git/config)
  [funcname]
    java = ... # ugly and complicated regexp to override the built-in one.
    perl = ... # another ugly and complicated regexp to define a new one.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff.c
diffcore.h
t/t4018-diff-funcname.sh [new file with mode: 0644]
xdiff-interface.c
xdiff-interface.h
xdiff/xdiff.h
xdiff/xemit.c