Linux中國

不喜歡 diff 么?試試 Meld 吧

Meld 是我處理代碼和數據文件的基本工具之一。它是一個圖形化的 diff 工具,因此,如果你曾經使用過 diff 命令並難以理解輸出,那麼 Meld 可以為你提供幫助。

這是該項目網站的精彩描述:

Meld 是面向開發人員的可視化 diff 和合併工具。Meld 可以幫助你比較文件、目錄和版本控制的項目。它提供文件和目錄的雙向和三向比較,並支持許多流行的版本控制系統。」

「Meld 可以幫助你檢查代碼更改並了解補丁。它甚至可以幫助你弄清你一直在避免的合併中發生了什麼。」

你可以使用以下命令在 Debian/Ubuntu 系統(包括 Raspbian)上安裝 Meld:

$ sudo apt install meld

在 Fedora 或類似產品上:

$ sudo dnf install meld

Meld 是跨平台的,它有一個使用 Chocolately 包管理器的 Windows 安裝包。儘管它在 macOS 上不受官方支持,但有可用於 Mac 的版本,你可以使用 Homebrew 安裝:

$ brew cask install meld

有關其他系統,請參見 Meld 的主頁。

Meld 對比 diff 命令

如果你有兩個相似的文件(也許一個是另一個的修改版本),並想要查看它們之間的更改,那麼可以在終端中運行 diff 命令查看它們的區別:

![diff output](/data/attachment/album/202004/03/122502d0a5m1hx5m1xa50d.png "diff output")

此例顯示了 conway1.pyconway2.py 之間的區別。表明我:

  • 刪除了釋伴和第二行
  • 從類聲明中刪除了 (object)
  • 為類添加了 docstring
  • 在方法中交換了 aliveneighbours == 2 的順序

這是使用 meld 命令的相同例子。你可以在命令行中運行以下命令進行相同的比較

$ meld conway1.py conway2.py

![Meld output](/data/attachment/album/202004/03/122515bssq8ug8o88jgo8s.png "Meld output")

Meld 更清晰!

你可以輕鬆查看並單擊箭頭(左右都行)合併文件之間的更改。你甚至可以實時編輯文件(在輸入時,Meld 可以用作具有實時比較功能的簡單文本編輯器)—只是要記得在關閉窗口之前保存。

你甚至可以比較和編輯三個不同的文件:

![Comparing three files in Meld](/data/attachment/album/202004/03/122529msab4qh6q6htp6s8.png "Comparing three files in Meld")

Meld 的 Git 感知

希望你正在使用 Git 之類的版本控制系統。如果是這樣,那麼你的比較就不是在兩個不同文件之間進行,而是要查找當前文件與 Git 歷史文件之間的差異。Meld 理解這一點,因此,如果你運行 meld conway.pyconway.py 在 Git 中),它將顯示自上次 Git 提交以來所做的更改:

![Comparing Git files in Meld](/data/attachment/album/202004/03/122546fqk6b776jkhy6w1b.png "Comparing Git files in Meld")

你可以看到當前版本(右側)和倉庫版本(左側)之間的更改。你可以看到,自上次提交以來,我刪除了一個方法,並添加了一個參數和一個循環。

如果你運行 meld .,你將看到當前目錄(如果位於倉庫的根目錄,就是整個倉庫)中的所有更改:

![Meld . output](/data/attachment/album/202004/03/122553b3vbmgfgb31y9g3n.png "Meld . output")

你會看到一個文件被修改了,另一個文件未加入版本控制(這意味著它對 Git 是新的,因此在比較之前,我需要 git add 添加該文件),以及許多其他未修改的文件。頂部的圖標提供了各種顯示選項。

你還可以比較兩個目錄,這有時很方便:

![Comparing directories in Meld](/data/attachment/album/202004/03/122601jqorbnbn2o82o2rq.png "Comparing directories in Meld")

結論

即使是普通用戶也會覺得 diff 的比較難以理解。我發現 Meld 提供的可視化在找出文件之間的更改方面有很大的不同。最重要的是,Meld 有一些有用的版本控制認知,可以幫助你在不考慮太多內容的情況下對 Git 提交進行比較。快來試試 Meld,並輕鬆解決問題。

本文最初發表在 Ben Nuttall 的 Tooling blog 上,並經允許重新使用。

via: https://opensource.com/article/20/3/meld

作者:Ben Nuttall 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國