Linux中國

Linux 系統上的可視化比較與合併工具 Meld

在跳到安裝和介紹部分前,我需要說明這篇教程里所有的指令和用例是都是可用的,而且它們已經在 Ubuntu 14.04 中測試過了,我們使用的 Meld 版本是 3.14.2。

關於 Meld

Meld 主要是一個可視化的比較和合併的工具,目標人群是開發者(當然,我們將要講到的其它部分也會考慮到最終用戶)。這個工具同時支持雙向和三向的比較,不僅僅是比較文件,還可以比較目錄,以及版本控制的項目。

Meld 可以幫你回顧代碼改動,理解補丁,」其官網如是說。「它甚至可以告知你如果你不進行合併將會發生什麼事情。」該工具使用 GPL v2 協議進行授權。

安裝 Meld

如果你用的是 Ubuntu 或者其它基於 Debian 的 Linux 分支,你可以用以下命令下載安裝 Meld:

sudo apt-get install meld

或者你也可以用系統自帶的包管理軟體下載這個工具。比如在 Ubuntu 上,你可以用 Ubuntu 軟體中心 Ubuntu Software Center ,或者用 Ubuntu 軟體,它從 Ubuntu 16.04 版本開始取代了 Ubuntu 軟體中心。

當然,Ubuntu 官方倉庫里的 Meld 版本很有可能比較陳舊。因此如果你想要用更新的版本,你可以在這裡下載軟體包。如果你要用這個方法,你要做的就是解壓下載好的軟體包,然後運行 bin 目錄下的 meld 程序。

~/Downloads/meld-3.14.2/bin$ ./meld 

以下是 Meld 依賴的軟體,僅供參考:

  • Python 2.7 (Python 3.3 開發版)
  • GTK+ 3.14
  • GLib 2.36
  • PyGObject 3.14
  • GtkSourceView 3.14
  • pycairo

使用 Meld

裝好了軟體,就可以看到類似這樣的畫面:

Meld started

有三個選項: 比較文件 File comparison 比較目錄 Directory comparison 以及 版本控制視圖 Version control view

點擊「比較文件」選項,就可以選擇需要比較的文件:

Meld file comparison

就像上面的截圖那樣明白,Meld 也可以進行三向比較,但是在這一系列文章的第一部分,我們只會講更常用的雙向比較。

接著,選擇你想要比較的文件,點擊 「比較」 Compare 按鈕。軟體會在兩邊分別打開兩個文件,高亮不同的行(以及不同的部分)。

Compare files in Meld

兩個文件的不同之處在第二行,差別在於 file2 文件的第二行多了一個 3。你看到的黑色箭頭是用來進行合併或修改的操作的。該例中,向右的箭頭將會把 file2 文件的第二行改成文件 file1 中對應行的內容。左向箭頭做的事情相反。

做完修改後,按下 Ctrl+s 來保存。

這個簡單的例子,讓你知道 Meld 的基本用法。讓我們看一看稍微複雜一點的比較:

Meld advanced file comparison

在討論這些變化前,這裡提一下, Meld 的界面中有幾個區域,可以給出文件之間的差異,讓概況變得直觀。這裡特別需要注意窗口的左右兩邊垂直的欄。比如下面這個截圖:

Visual Comparison

仔細觀察,圖中的這個欄包含幾個不同顏色的區塊。這些區塊是用來讓你對文件之間的差異有個大概的了解。「每一個著色的區塊表示一個部分,這個部分可能是插入、刪除、修改或者有差別的,取決於區塊所用的顏色。」官方文檔是這樣說的。

現在,讓我們回到我們之前討論的例子中。接下來的截圖展示了用 Meld 理解文件的改動是很簡單的(以及合併這些改動):

File changes visualized in Meld

Meld Example 2

Meld Example 3

接著,我們滑動文件,從一個改動跳到另一個。但是,當要比較的文件很大時,這會耗一點時間,當你想要滑動文件跳到一個改動的位置時,也會變得很困難。如果是這種情況的話,你可以用工具欄的橙色箭頭,就在編輯區域的上方:

Go to next change in Meld

這些是你使用 Meld 時做的一般性的事情:可以用標準的 Ctrl+f 組合鍵在編輯區域內進行查找,按 F11 鍵讓軟體進入全屏模式,再按 Ctrl+r 來刷新(通常在所有要比較的文件改變的時候使用)。

以下是 Meld 官方網站宣傳的重要特性:

  • 文件和目錄的雙向及三向比較
  • 輸入即更新文件的比較
  • 自動合併模式,按塊改動的動作讓合併更加簡單
  • 可視化讓比較文件更簡單
  • 支持 Git,Bazaar,Mercurial,Subversion 等等

注意還不僅僅只有以上所列的。網站上有個專門的特性頁面,裡面提到了 Meld 提供的所有特性。這個頁面列出的所有特性分為幾個部分,以該軟體是用來做文件比較、目錄比較、版本控制還是處於合併模式下為基礎進行劃分。

和其它軟體相似,有些事情 Meld 做不到。官方網站上列出了其中的一部分:「當 Meld 展示文件之間的差異時,它同時顯示兩個文件,看起來就像在普通的文本編輯器中。它不會添加額外的行,讓左右兩邊文件的特殊改動處於同樣的行數。沒有做這個事情的選項。」

總結

我們剛剛了解到的不過是皮毛,因為 Meld 還能做很多事情。考慮到這是教程系列的第一部分,這也挺不錯的。這僅僅是讓你了解 Meld 的作用,你可以配置它,忽略一些特定類型的改動,讓它移動,複製或者刪除文件之間的個別差異,也可以從命令行啟動它。在即將退出的系列教程中,我們將會講述所有這些重要功能。

via: https://www.howtoforge.com/tutorial/beginners-guide-to-visual-merge-tool-meld-on-linux/

作者:Ansh 譯者:GitFuture 校對: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中國