代码之家  ›  专栏  ›  技术社区  ›  svick Raja Nadar

在git diff中自定义标题

  •  13
  • svick Raja Nadar  · 技术社区  · 15 年前

    git diff ,每次更改都以如下行开始:

    @@ -28,41 +20,10 @@ namespace ConsoleApplication1
    

    对于C来说,最后一部分是非常描述性的,例如它显示了发生更改的函数。但是对于C#,它只显示名称空间,这不是很有用。我想那是因为它显示的最后一行没有缩进。有没有办法配置这个?

    2 回复  |  直到 15 年前
        1
  •  19
  •   Michael come lately PhiLho    6 年前

    我已经找到了,这条线叫做“大块头” the documentation 说明如何定制:

    文本差异输出中的每组更改(称为“hunk”)都以一行形式作为前缀:

    @@ -k,l +n,m @@ TEXT
    

    diff -p 输出使用。但是,此默认选择不适用于某些内容,您可以使用自定义模式进行选择。

    首先,在.gittattributes中,将 diff 路径的属性。

    *.tex   diff=tex
    

    然后,您将定义一个“diff.tex.xfucname”配置,以指定一个正则表达式,该表达式与您希望显示为大标题“TEXT”的行相匹配。将节添加到 $GIT_DIR/config $HOME/.gitconfig (文件)如下:

    [diff "tex"]
            xfuncname = "^(\\\\(sub)*section\\{.*)$"
    

    注意。配置文件解析器只使用一级反斜杠,因此需要将反斜杠增加一倍;上面的模式选择一条以反斜杠开始的线,以及零次或多次出现的sub,后跟section,后跟open brace,直到该线的末尾。

        2
  •  4
  •   Jakub Narębski adamtaub    15 年前

    gitattributes manpage “生成差异文本”部分,例如。 diff.csharp.xfuncname 配置(搜索 xfuncname ).

    推荐文章