use*_*932 5 linux git vimdiff difftool
我使用的是 Linux Mint 17 64 位。刚刚清除git并重新安装apt。已删除~/.gitconfig。我在所谓的全新安装后所做的唯一配置是(在存储库内)
git config diff.tool vimdiff
Run Code Online (Sandbox Code Playgroud)
然后我跑
git difftool HEAD:switch-monitor.sh master:switch-monitor.sh
Run Code Online (Sandbox Code Playgroud)
并得到
fatal: cannot exec 'git-difftool--helper': Bad address
external diff died, stopping at HEAD:switch-monitor.sh.
Run Code Online (Sandbox Code Playgroud)
因此,我删除了相关行.git/config并再次尝试该命令,果然内置的基本git diff工作正常。
我还尝试了本教程中的说明:http://technotales.wordpress.com/2009/05/17/git-diff-with-vimdiff/
这会导致略有不同但相似的错误。我将以下内容放入新的~/.gitconfig
[diff]
external = git_diff_wrapper
[pager]
diff =
Run Code Online (Sandbox Code Playgroud)
git_diff_wrapper并在 my 上放置一个可执行文件PATH,然后运行
git diff HEAD:switch-monitor.sh master:switch-monitor.sh
Run Code Online (Sandbox Code Playgroud)
并得到
fatal: cannot exec 'git_diff_wrapper': Bad address
external diff died, stopping at HEAD:switch-monitor.sh.
Run Code Online (Sandbox Code Playgroud)
不过好像和内容没什么关系git_diff_wrapper。我放置了
git config diff.tool vimdiff
Run Code Online (Sandbox Code Playgroud)
进入它并不会改变任何东西。但是,如果我删除该文件或重命名它,那么我确实会得到这个
error: cannot run git_diff_wrapper: No such file or directory
external diff died, stopping at HEAD:switch-monitor.sh.
Run Code Online (Sandbox Code Playgroud)
请注意,在这种情况下,它显示“没有这样的文件或目录”而不是“错误地址”。
我在网上搜索过,但找不到类似问题的实例。
我在虚拟机上全新安装 Ubuntu 14.04 时遇到同样的问题
我花了一些时间查看 git 的源代码,并且我很确定在这个函数的过程中errno被设置为(“错误地址”):EFAULT
git difftool HEAD:switch-monitor.sh master:switch-monitor.sh
Run Code Online (Sandbox Code Playgroud)
这称为:
fatal: cannot exec 'git-difftool--helper': Bad address
external diff died, stopping at HEAD:switch-monitor.sh.
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
谢谢
小智 1
我知道这是一个旧线程,但它似乎没有被关闭......
我遇到过类似的错误(我也想使用 vimdiff 来检查两次提交之间的差异)。对我有用的: git difftool HEAD..HEAD~1 --path-to-file/file
如/sf/ask/233668851/ Between-two- Different-commits-on-the-same-branch
干杯
| 归档时间: |
|
| 查看次数: |
3241 次 |
| 最近记录: |