在mac上安装Meld,给Android Studio使用为git diff的工具。
Ubuntu中Meld很好配置,mac中没找到dmg包,在这篇博客中看到的下载的办法:
Mac安装Meld,并作为git merge tool的工具
brew install Caskroom/cask/xquartz
brew install pygtk
brew cask install caskroom/cask/meld
安装完了过后还有其他地方需要配置,一个是.gitconfig文件,
另外,遇到这样的报错
(meld:41258): Gtk-WARNING **: 09:23:58.646: Locale not supported by C library.
Using the fallback 'C' locale.
Usage:
meld Start with an empty window
meld <file|folder> Start a version control comparison
meld <file> <file> [<file>] Start a 2- or 3-way file comparison
meld <folder> <folder> [<folder>] Start a 2- or 3-way folder comparison
Error: too many arguments (wanted 0-3, got 7)
Couldn't set the locale: unsupported locale setting; falling back to 'C' locale
解决办法:
参考这里,
git diff with meld
原文中
Meld is a diff tool, how to use it with git?
1.install meld:
sudo apt-get install meld
2.need a script:
2.1 in the teminal:
sudo gedit /bin/git-meld.sh
2.2 in the text plz input below:
#!/bin/sh
meld $2 $5
2.3 int the terminal:
sudo chmod +x /bin/git-meld.sh
3.set the git config in terminal:
git config --global diff.external /bin/git-meld.sh
我的改造
因为我用的mac,bin/sh那个目录里新添加的文件不能write,没法写入内容。理解下上文的精髓,就是找个地方存一个文件,让它成为可执行文件,然后在里边把meld的默认行为弄成meld $2 $5,从而解决
因为meld只接受两个参数,而git diff会传递7个参数,因此需要编写个shell脚本转换一下
这个问题。
如上引用文字出处
。
确实能解决问题,不是大家瞎抄来抄去。
因为我的meld最后是安装在/usr/local/bin下,就把git-meld.sh文件也存在相同路径下(其实可以写文件就行,存哪里都可以,只要在~/.gitconfig中配置好就行),.sh中写的内容同上,就是meld $2 $5
katrinahuang@KatrinadeMacBook-Pro:/usr/local/bin$ vi git-meld.sh
katrinahuang@KatrinadeMacBook-Pro:/usr/local/bin$ sudo chmod +x /usr/local/bin/git-meld.sh
katrinahuang@KatrinadeMacBook-Pro:/usr/local/bin$ git config --global diff.external /usr/local/bin/git-meld.sh
好了,这是我的~/.gitconfig中[diff]部分的配置:
[diff]
tool = meld
external = /usr/local/bin/git-meld.sh
接着跑到开发工具的项目代码路径下去使用git diff,就是正常的比对的界面啦
开心😺,靠自己也能够解决一些工具相关的问题,一点点看见自己的能力。加油⛽️