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 軟體,它從 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 也可以進行三向比較,但是在這一系列文章的第一部分,我們只會講更常用的雙向比較。
接著,選擇你想要比較的文件,點擊 「比較」 按鈕。軟體會在兩邊分別打開兩個文件,高亮不同的行(以及不同的部分)。
兩個文件的不同之處在第二行,差別在於 file2
文件的第二行多了一個 3
。你看到的黑色箭頭是用來進行合併或修改的操作的。該例中,向右的箭頭將會把 file2
文件的第二行改成文件 file1
中對應行的內容。左向箭頭做的事情相反。
做完修改後,按下 Ctrl+s
來保存。
這個簡單的例子,讓你知道 Meld 的基本用法。讓我們看一看稍微複雜一點的比較:
在討論這些變化前,這裡提一下, Meld 的界面中有幾個區域,可以給出文件之間的差異,讓概況變得直觀。這裡特別需要注意窗口的左右兩邊垂直的欄。比如下面這個截圖:
仔細觀察,圖中的這個欄包含幾個不同顏色的區塊。這些區塊是用來讓你對文件之間的差異有個大概的了解。「每一個著色的區塊表示一個部分,這個部分可能是插入、刪除、修改或者有差別的,取決於區塊所用的顏色。」官方文檔是這樣說的。
現在,讓我們回到我們之前討論的例子中。接下來的截圖展示了用 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/
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive