Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python git diff如何生成大块描述?_Python_Git_Diff - Fatal编程技术网

Python git diff如何生成大块描述?

Python git diff如何生成大块描述?,python,git,diff,Python,Git,Diff,(git版本1.6.5.7) 当我运行git diff时,在Python脚本的行号后面会有一个很好的范围提示,例如: diff --git a/file.py b/file.py index 024f5bb..c3b5c56 100644 --- a/file.py +++ b/file.py @@ -14,6 +14,8 @@ TITF: Test Infrastructure Tags Format ... @@ -1507,13 +1533,16 @@ class Tags( object

(git版本1.6.5.7)

当我运行
git diff
时,在Python脚本的行号后面会有一个很好的范围提示,例如:

diff --git a/file.py b/file.py
index 024f5bb..c3b5c56 100644
--- a/file.py
+++ b/file.py
@@ -14,6 +14,8 @@ TITF: Test Infrastructure Tags Format
...
@@ -1507,13 +1533,16 @@ class Tags( object ):
...
请注意,行号后面跟着
TITF:Test-Infrastructure-Tags-Format
class-Tags(object):
。第一个补丁适用于模块范围,描述
TITF:testinfrastructure Tags Format
是模块的描述。第二个补丁适用于
标记
类的方法

  • git如何生成这些描述
  • 如何调整它们以显示修补程序应用的方法名称

  • Git使用正则表达式为hunk头找到合适的行。Python是内置的,但您应该能够在~/.gitconfig中定义自己的表达式:

    [diff "python"]
            xfuncname = "<regex goes here>"
    
    [diff“python”]
    xfuncname=“”
    
    更多关于这个

    编辑:内置python正则表达式似乎是在(第53行)中定义的,尽管我的正则表达式fu不够好,无法准确理解它的功能

    PATTERNS("python", "^[ \t]*((class|def)[ \t].*)$",
             /* -- */
             "[a-zA-Z_][a-zA-Z0-9_]*"
             "|[-+0-9.e]+[jJlL]?|0[xX]?[0-9a-fA-F]+[lL]?"
             "|[-+*/<>%&^|=!]=|//=?|<<=?|>>=?|\\*\\*=?"
             "|[^[:space:]|[\x80-\xff]+"),
             /* -- */
    
    PATTERNS(“python”,“^[\t]*((class | def)[\t].*)$”,
    /* -- */
    “[a-zA-Z.][a-zA-Z0-9.]*”
    “|[-+0-9.e]+[jJlL]?|0[xX]?[0-9a-fA-F]+[lL]?”
    "|[-+*/%&^|=!]=|//=?|=?|\\*\\*=?"
    “|[^[:space:][\x80-\xff]+”,
    /* -- */
    
    在Git 2.25(2020年第1季度)中,
    userdiff
    机制被教导“
    async def
    ”是Python中开始“函数”的另一种方式

    参见(2019年11月19日)作者 (于2019年12月5日合并)

    :支持Python异步函数 签字人:Josh Holland
    确认人:约翰内斯六世

    Python的
    async
    函数(用“
    async def
    ”而不是“
    def
    ”)声明)没有显示在大块的标题中。
    这个commit向Git教授了
    async
    函数语法,并添加了Python
    userdiff
    regex的测试


    有趣的是,.py diff=python“即使不定义自定义的[diff“python”],也会将行为更改为我想要的,但是,.py+diff(显然是我的默认值)的行为如我的问题所示。”.py diff=python“告诉git使用在[diff“python”](或预定义的默认值)下定义的选项“.py+diff”仅启用文本差异。此开关通常用于禁用不总是检测为二进制文件的文件的差异,例如“*.ps-diff”将PostScript文件视为二进制文件,因此不显示差异。尽管对于二进制文件,建议设置“*.ps binary”,这是“-crlf-diff”的别名GNU diff也有类似的
    -p
    /
    --show-c-function
    选项,这是它的git-diff等价/泛化的灵感来源。对于那些想知道“*.py diff=python”是什么的人,我想指出这是.gittributes文件中的一行(如果我没有弄错的话)。