这已经困扰了我一段时间,搜索没有提示.
问题:
当我git diff
在包含a的PHP文件上执行操作时Class
,每个hunk描述都有类名,没有提到方法名.
例如:
@@ -351,7 +351,7 @@ class Session
$form->setError($field, $subpassValid['msg']);
}
// E-Mail address error checking
$field = "email"; //Use field name for email
- if(!isset($subemail) || strlen($subemail = trim($subemail)) == 0){
+ if(!$subemail || strlen($subemail = trim($subemail)) == 0){
$form->setError($field, "* Email not entered");
@@ -373,7 +373,7 @@ class Session
...
Run Code Online (Sandbox Code Playgroud)
题:
有没有办法告诉git
显示方法名称而不是/沿着类名称?
编辑:
附加信息:
diff version: 2.8.1
git version: 1.7.6 (from the git-core PPA)
OS: Ubuntu 9.10
Run Code Online (Sandbox Code Playgroud)
我最初从股票Ubuntu repos获得了git版本1.7.0.4,但更新了它,希望它是一个bug.不幸的是,这并没有解决问题.
EDIT2:
经过更多测试后,似乎如果函数声明完全缩进(使用空格或制表符),git diff
则不会获取函数名称.这似乎是一个错误git
.
Tar*_*del 22
如果你发现自己有这个问题,这可能是由于这样的事实,git
让diff
定义大块头.如果您想强制git
使用其预定义的PHP,请将以下行放在.gitattributes
git存储库的根文件夹或存储库中的.git/info/attributes
文件中:
*.php diff=php
Run Code Online (Sandbox Code Playgroud)
(类似地支持其他语言.文档中提供了内置模式的列表.)
应该可以通过执行以下操作来全局设置它 git version >= 1.4
~/.gitattributes
git config --global core.attributesfile "~/.gitattributes"
或者,如果您想全局设置它
/etc/gitattributes
警告:如果您个人在全球范围内设置此选项,则您的同事在运行时可能会得到不同的结果,git diff
因为他们不会检查.gitattributes
存储库的副本.
我不太明白为什么它不能按预期的方式工作.
作为临时解决方案,请将以下内容添加到.gitattributes
:
*.php diff=phpf
Run Code Online (Sandbox Code Playgroud)
这些线路.git/config
或~/.gitconfig
:
[diff "phpf"]
xfuncname = "^[\t ]*(((public|protected|private|static)[\t ]+)*function.*)$"
Run Code Online (Sandbox Code Playgroud)
要获得永久性解决方案,请直接通过git@vger.kernel.org邮件列表向Git开发人员咨询.
归档时间: |
|
查看次数: |
3315 次 |
最近记录: |