跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 繁中維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 檔案比對 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
檔案比對
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
編輯文件、程式碼或任何資料時,總有引入錯誤的風險。檔案比較工具透過顯示兩組或多組資料之間的差異,專注於新的資料並忽略未變更的部分,使電腦運算更簡單、更有效率。這類工具通常以 Unix 的 <code>diff</code> 工具程式為名,泛稱為 diff,有各式各樣的方法可以比較資料來源並顯示結果。 一些廣泛使用的檔案比較程式包括 diff、cmp、FileMerge、WinMerge、Beyond Compare 和 File Compare。 由於了解變更對於程式碼或文件的撰寫者至關重要,許多文字編輯器和文書處理器都內建了必要的功能,以檢視檔案或文件不同版本之間的變更。 == 方法類型 == 尋找差異的最有效方法取決於來源資料以及變更的性質。其中一種方法是找出兩個檔案之間的最長共同子序列,然後將不共通的資料視為插入或刪除。 1978 年,Paul Heckel 發表了一種演算法,能夠識別大多數移動的文字區塊。IBM History Flow 工具即採用此演算法。其他檔案比較程式也能找出區塊移動。 一些專門的檔案比較工具會找出兩個檔案之間的最長遞增子序列。rsync 協定則使用滾動雜湊函數,以低通訊開銷比較兩台遠端電腦上的兩個檔案。 文書處理器中的檔案比較通常是字詞層級,而大多數程式開發工具中的比較則是行層級。在某些特殊應用中,位元組或字元層級的比較也相當實用。 == 顯示 == 檔案比較的最佳結果顯示方式取決於許多因素,包括來源資料的類型。程式碼固定的行數提供了明確的比較單位。但這對文件來說並不適用,因為在文件中新增一個單字就可能導致後續行的換行方式不同,但內容本身並未改變。 最常見的變更顯示方式有兩種:並排顯示,或是突顯資料插入與刪除的整合檢視。在任一種並排檢視中,為了提高效率,介面可能會透過程式碼摺疊或文字摺疊,隱藏檔案中未變更的部分,僅顯示有變更之處。 == 原理 == 使用比較工具有各種原因,而工具本身也採用不同的方法。要比較二進位檔案,工具可能會使用位元組層級的比較。若要比較文字檔案或電腦程式,許多工具則使用並排的視覺化比較。這讓使用者有機會在將檔案合併成新版本之前,選擇要保留或捨棄哪些變更,或者也可以透過某種形式的「版本控制」,將兩個版本都保留下來以供日後參考。 檔案比較是檔案同步與備份中一個重要且不可或缺的過程。在備份方法學中,資料毀損是個重要的議題。資料毀損發生前很少有警訊,這使得還原變得困難甚至不可能。問題通常要到下一次有人嘗試開啟檔案時才會顯現。在這種情況下,比較工具可以幫助找出問題是在何時被引入的。 == 歷史用途 == 在檔案比較出現之前,已有機器用來比較磁帶或打孔卡。IBM 519 卡片複製機能夠判斷一副打孔卡是否相同。1957 年,John Van Gardner 開發了一個系統,透過比較已載入的 Fortran 程式區段的校驗和,來為 IBM 704 上的編譯問題進行除錯。 == 參見 == == 參考資料 == == 外部連結 == Category:資料差異分析 Category:工具軟體類型 [[分類: 待校正]]
返回到「
檔案比對
」。