tools / diff
diff/
逐行比對兩段文字,以統一檢視標示新增與刪除。
原文
新文
差異
常見問題
差異結果裡的兩欄行號和 + - 怎麼看,有左右並排檢視嗎
每行左邊有兩欄行號:第一欄是原文裡的行號,第二欄是新文裡的行號。以 - 開頭的行只在原文裡有(已刪除),以 + 開頭的行只在新文裡有(新增),沒有符號的行兩邊相同。「差異」標題旁的 +N -N 是新增和刪除的行數。只有這一種統一檢視,沒有左右並排,未變動的行也會全部顯示。
一行裡只改了一個字,為什麼整行都顯示為變動
因為這個工具是以整行比對,不會標出行內具體哪幾個字變了。一行有任何變動,就顯示為舊行被刪除、新行被新增(刪除在前)。想看具體改了哪幾個字,可以先把這一行依標點或空格拆成多行再比對。段落移動位置,也只會顯示為一處刪除和一處新增。
比對結果裡新增和刪除弄反了怎麼辦
「原文」框放舊版本,「新文」框放新版本。放反了就點「⇄ 左右對調」,新增和刪除會對調。
只有空格、縮排或換行符號不同,怎麼讓它們不算差異
Windows、Mac、Linux 的換行符號不同不算差異,文字結尾多一個換行也不算。行首行尾的空格和縮排,勾選「忽略前後空白」就不再計較。行中間的空格數量、Tab 換成空格、多出來的空行,仍然算差異。「忽略大小寫」則是整行都不區分大小寫。
能比對多大的文字,為什麼提示行數過多或暫停了即時比對
每一側最多 5 萬行,超過會提示行數過多,不會比對。兩邊合計超過 50 萬個字元時,不再邊輸入邊比對,需要點「比對」按鈕。結果最多顯示前 2 萬行,其餘只顯示一句提示,頂部的 +N -N 統計仍包含全部。
提示「計算超過 3 秒,部分差異以整塊取代顯示」是什麼意思
兩段文字差異很大、行數又多時,找出最短改動的計算會很慢。超過 3 秒後,沒算完的部分直接顯示成整塊刪除加整塊新增。結果依然正確,只是不一定是最短的改法。
和 git diff 的結果一樣嗎,能匯出 patch 嗎
思路相同,但不保證完全一樣。都是逐行比對,演算法同為 Myers(git diff 預設使用它),不過同樣短的改法有多種時,選哪一種可能不同。這裡沒有 @@ 行號標頭,未變動的行全部顯示,也不能匯出 patch;選取結果複製時,行號和 +/- 符號不會被複製。
比對的程式碼和文字會上傳嗎
不會。比對在你的瀏覽器裡完成,頁面沒有向伺服器傳送內容的請求,也沒有把輸入存到本機。