(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: Test Infrastructure Tags Format
是模块的描述。第二个补丁适用于Tags
类的方法。
答案 0 :(得分:15)
Git使用正则表达式为hunk标头找到合适的行。 Python是内置的,但您应该能够在〜/ .gitconfig中定义自己的表达式:
[diff "python"]
xfuncname = "<regex goes here>"
有关此here的更多信息。
编辑:内置的python正则表达式似乎是在userdiff.c(第53行)中定义的,虽然我的正则表达式并不足以真正理解它的作用。 ..
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]+"),
/* -- */
答案 1 :(得分:1)
在Git 2.25(2020年第一季度)中,userdiff
机制被告知“ async def
”是在Python中开始“函数”的另一种方式。
请参见commit 077a1fd的Josh Holland (anowlcalledjosh
)(2019年11月19日)。
(由Junio C Hamano -- gitster
--在commit 9502b61中合并,2019年12月5日)
userdiff
:支持Python异步功能签名人:Josh Holland
Acked-by:约翰内斯·瑟维特(Johannes Sixt)Python的
async
函数(用“async def
”而不是“def
”声明)未显示在大块标题中。
该提交向Git教授了async
函数语法,并为Pythonuserdiff
正则表达式添加了测试。