在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,就是正常的比对的界面啦
截图样例
开心😺,靠自己也能够解决一些工具相关的问题,一点点看见自己的能力。加油⛽️

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐