Text diff tools: Difference between revisions
(22 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
檔案比對或資料夾比對工具: | |||
# 比較或合併純文字檔案 (如程式碼) 內容 (the diff or merge tools for comparing files by content) 或 | |||
# 比較不同資料夾檔案 | |||
== Free tools == | == Free tools == | ||
Line 11: | Line 13: | ||
** 如果同一檔案,但是不同「行尾字元」(Windows: CRLF, Unix: LF, Mac: CR),則整個檔案視為不同,需要手動轉換。 [[Image:Icon exclaim.gif| ]] (選單: 檔案 --> 轉換行尾字元成... ) | ** 如果同一檔案,但是不同「行尾字元」(Windows: CRLF, Unix: LF, Mac: CR),則整個檔案視為不同,需要手動轉換。 [[Image:Icon exclaim.gif| ]] (選單: 檔案 --> 轉換行尾字元成... ) | ||
** 忽略以 [[Comment Syntax]] 為起首的該行的內文的差異: 可。 [http://manual.winmerge.org/Filters.html Using Filters - WinMerge 2.12 Manual] | ** 忽略以 [[Comment Syntax]] 為起首的該行的內文的差異: 可。 [http://manual.winmerge.org/Filters.html Using Filters - WinMerge 2.12 Manual] | ||
* 比較資料夾: | * 比較資料夾: 可。 {{exclaim}} 不能忽略特定規則的檔案或資料夾。 | ||
* 大檔案比較: 超過 900MB 檔案會當掉 {{exclaim}} | |||
[http://www.grigsoft.com/wincmp3.htm Compare It! ] v.4 | [http://www.grigsoft.com/wincmp3.htm Compare It! ] v.4 | ||
Line 19: | Line 21: | ||
* 比較萬國碼的檔案(unicode support): 可 | * 比較萬國碼的檔案(unicode support): 可 | ||
* 比較資料夾: 可,輸出左右欄內文比較的網頁檔 (實際測試有檔案漏掉) | * 比較資料夾: 可,輸出左右欄內文比較的網頁檔 (實際測試有檔案漏掉) | ||
* 大檔案比較: | |||
[http://gnuwin32.sourceforge.net/packages/diffutils.htm DiffUtils for Windows] 2.8.7 | [http://gnuwin32.sourceforge.net/packages/diffutils.htm DiffUtils for Windows] 2.8.7 | ||
Line 27: | Line 30: | ||
* 介面: GUI, freeware | * 介面: GUI, freeware | ||
* comment: 自作主張將movabletype的template轉成html,比較不出差異。安裝時不要選擇Traditional chinese,會造成介面亂碼 | * comment: 自作主張將movabletype的template轉成html,比較不出差異。安裝時不要選擇Traditional chinese,會造成介面亂碼 | ||
[https://sourcegear.com/diffmerge/ DiffMerge] v.4.2.0 for {{Win}} & {{Mac}} | |||
* 介面: <abbr title="圖形化的使用者介面, Graphical user interface">GUI</abbr> | |||
* 輸出: 可輸出比較檔案 (選單列: Export --> File diffs) | |||
* 比較檔案 | |||
** 比較萬國碼的檔案(unicode support): 可 | |||
** 標示行內差異的行內文字: 可 | |||
* 比較資料夾: 可 | |||
* 大檔案比較: | |||
[http://www.prestosoft.com/ps.asp?page=edp_examdiff ExamDiff](TM) Version 1.8 | [http://www.prestosoft.com/ps.asp?page=edp_examdiff ExamDiff](TM) Version 1.8 | ||
Line 38: | Line 50: | ||
* 比較檔案: 否 | * 比較檔案: 否 | ||
* 比較資料夾: 可。[[Image:Icon exclaim.gif| ]] (1)僅比對資料夾的檔案日期 或 檔案大小 擇一。如果檔案內容相同,但檔案名稱不同,視為不同。 (2)如果子資料夾有不同檔案,不會在子資料夾標示上顏色。 | * 比較資料夾: 可。[[Image:Icon exclaim.gif| ]] (1)僅比對資料夾的檔案日期 或 檔案大小 擇一。如果檔案內容相同,但檔案名稱不同,視為不同。 (2)如果子資料夾有不同檔案,不會在子資料夾標示上顏色。 | ||
* 大檔案比較: | |||
[http://meld.sourceforge.net/ Meld Diff Viewer] for *unix like OS | [http://meld.sourceforge.net/ Meld Diff Viewer] for *unix like OS | ||
Line 59: | Line 72: | ||
* 比較檔案: 可比較萬國碼的檔案。 {{exclaim}} 中文與數字夾雜時,數字位置有跑掉 | * 比較檔案: 可比較萬國碼的檔案。 {{exclaim}} 中文與數字夾雜時,數字位置有跑掉 | ||
* 比較資料夾: 可 | * 比較資料夾: 可 | ||
* 大檔案比較: | |||
[http://www.comparemyfiles.com/default.aspx Free Online File Compare Utility] (access: 20090127) | [http://www.comparemyfiles.com/default.aspx Free Online File Compare Utility] (access: 20090127) | ||
Line 64: | Line 78: | ||
* 顏色標記差異處, '''不可'''輸出比較檔案, 中文介紹: [http://iwanthotnews.blogspot.com/2009/01/comparemyfilescom.html CompareMyFiles.com 線上檔案比對工具-哈燒部落 I Want Hot News] | * 顏色標記差異處, '''不可'''輸出比較檔案, 中文介紹: [http://iwanthotnews.blogspot.com/2009/01/comparemyfilescom.html CompareMyFiles.com 線上檔案比對工具-哈燒部落 I Want Hot News] | ||
* 中文UTF-8編碼的純文字檔ok, xml檔則變成亂碼 | * 中文UTF-8編碼的純文字檔ok, xml檔則變成亂碼 | ||
[https://itunes.apple.com/us/app/compare-folders/id816042486?mt=12 Compare Folders on the Mac App Store] Version: 1.1.9 | |||
* 介面: GUI , shareware ([http://www.scootersoftware.com/vbulletin/showthread.php?t=3094 Using BC with Command line scripting - Scooter Forums]) | |||
* 檔案比較: 無,需要額外付費購買 File Checksums | |||
* 輸出: | |||
* 比較資料夾: 可 {{exclaim}} 資料夾內的檔案如果內容相同、時間不同,會視為兩個不同資料夾。 | |||
* 大檔案比較: | |||
* OS: {{Mac}} | |||
[http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools Visual Merge and Diff Tools: P4Merge | Perforce] v. 2014.1/827578 for {{Mac}} | |||
* 中文 ok | |||
[http://www.sourcegear.com/diffmerge/ SourceGear | DiffMerge] v. 4.2.0.697 for {{Win}}, {{Mac}} | [http://www.sourcegear.com/diffmerge/ SourceGear | DiffMerge] v. 4.2.0.697 for {{Win}}, {{Mac}} | ||
* {{exclaim}} 無法選擇編碼,中文UTF-8編碼的純文字檔變成亂碼 ({{Mac}} 上測試) | * {{exclaim}} 無法選擇編碼,中文UTF-8編碼的純文字檔變成亂碼 ({{Mac}} 上測試) | ||
[https://www.diffnow.com/ DiffNow - Compare files online. Powered by ExamDiff Pro.] 線上服務。介紹: [https://free.com.tw/diffnow/ DiffNow 線上文字檔/原始碼差異比較工具] {{access | date = 2016-03-31}} | |||
* 介面: GUI | |||
* 輸出: html | |||
* unicode support: ? | |||
[https://www.computerhope.com/unix/udiff.htm Linux diff command]: [http://jashliao.pixnet.net/blog/post/164675130-%E6%AF%8F%E5%A4%A9%E4%B8%80%E5%80%8Blinux%E6%8C%87%E4%BB%A4--diff-%E6%8C%87%E4%BB%A4(%E6%AF%94%E8%BC%83%E6%96%87%E4%BB%B6%E5%85%A7%E5%AE%B9%E7%9A%84 每天一個Linux指令- diff 指令(比較文件內容的差異 工具) @ jashliao的部落格 :: 痞客邦 PIXNET ::] | |||
* 介面: console | |||
* 輸出: | |||
* unicode support: ok | |||
* 大檔案比較: 超過 900MB 會沒有反應一陣子,超過數分鐘後手動中斷 | |||
== Shareware == | == Shareware == | ||
Line 72: | Line 109: | ||
* 介面: GUI , shareware ([http://www.scootersoftware.com/vbulletin/showthread.php?t=3094 Using BC with Command line scripting - Scooter Forums]) | * 介面: GUI , shareware ([http://www.scootersoftware.com/vbulletin/showthread.php?t=3094 Using BC with Command line scripting - Scooter Forums]) | ||
* 輸出: 可輸出比較檔案 (選單列: Session --> Text compare report) Unicode 檔案ok | * 輸出: 可輸出比較檔案 (選單列: Session --> Text compare report) Unicode 檔案ok | ||
* 比較資料夾: 可 | * 比較資料夾: 可 (1) {{Gd}} [https://www.scootersoftware.com/v4help/index.html?dir_filtering_the_view.html Filtering the Folder Compare View] (2) {{exclaim}} 資料夾內的檔案如果內容相同、時間不同,會視為兩個不同資料夾。 | ||
* 大檔案比較: 超過 5MB 的檔案反應速度快 {{Gd}} | |||
* OS: {{Win}} & {{Mac}} | |||
[http://www.ghisler.com/ Total Commander] 7.56a | [http://www.ghisler.com/ Total Commander] 7.56a | ||
Line 82: | Line 120: | ||
** 標示行內差異的行內文字: 否 | ** 標示行內差異的行內文字: 否 | ||
* 比較資料夾: 可 (選單列: Commands --> Synchronize Dirs 再點選Compare, 建議勾選by content) | * 比較資料夾: 可 (選單列: Commands --> Synchronize Dirs 再點選Compare, 建議勾選by content) | ||
* 大檔案比較: | |||
* OS: {{Win}} | |||
[http://www.ultraedit.com/products/ultracompare.html UltraCompare] v.8 | [http://www.ultraedit.com/products/ultracompare.html UltraCompare] v.8 | ||
Line 91: | Line 130: | ||
** 標示行內差異的行內文字: 可 {{Gd}} | ** 標示行內差異的行內文字: 可 {{Gd}} | ||
* 比較資料夾: 可 | * 比較資料夾: 可 | ||
* 大檔案比較: | |||
* OS: {{Win}} & {{Mac}} | |||
[http://cmpp.coodesoft.com/ Compare++ - Structured file compare and merge tool] v.1.7.2.x | [http://cmpp.coodesoft.com/ Compare++ - Structured file compare and merge tool] v.1.7.2.x | ||
Line 99: | Line 140: | ||
** 標示行內差異的行內文字: 可 {{Gd}} | ** 標示行內差異的行內文字: 可 {{Gd}} | ||
* 比較資料夾: 可 | * 比較資料夾: 可 | ||
* 大檔案比較: | |||
* OS: {{Win}} | |||
Other shareware: [http://www.araxis.com/merge/index.html Araxis Merge] | [http://www.kaleidoscopeapp.com/ Kaleidoscope — File comparison for Mac] 免費試用 14 天 | ||
* 介面: GUI | |||
* 輸出: 無 | |||
* 比較資料夾: 可 {{Gd}} 資料夾內的檔案如果內容相同、時間不同,會視為相同 。 | |||
* 大檔案比較: 超過 5MB 的檔案比較超過一分鐘 {{exclaim}} | |||
* OS: {{Mac}} | |||
Other shareware: | |||
* [http://www.araxis.com/merge/index.html Araxis Merge] for OS: {{Win}} & {{Mac}} | |||
* [http://www.prestosoft.com/edp_examdiffpro.asp ExamDiff Pro] for OS: {{Win}} | |||
== Dropbox + diff tools == | == Dropbox + diff tools == | ||
Line 118: | Line 170: | ||
"%ProgramFiles%\Beyond Compare 3\BCompare.exe" | "%ProgramFiles%\Beyond Compare 3\BCompare.exe" | ||
</pre> | </pre> | ||
Line 139: | Line 186: | ||
</pre> | </pre> | ||
== further reading == | |||
* [http://en.wikipedia.org/wiki/Comparison_of_file_comparison_tools Comparison of file comparison tools] | |||
* [http://zh-tw.w3support.net/index.php?db=so&id=96051 最好的文件比較工具] | |||
* [https://en.wikipedia.org/wiki/Diff_utility diff utility - Wikipedia] | |||
== references == | == references == |
Revision as of 15:19, 15 November 2018
檔案比對或資料夾比對工具:
- 比較或合併純文字檔案 (如程式碼) 內容 (the diff or merge tools for comparing files by content) 或
- 比較不同資料夾檔案
Free tools
WinMerge 2.14 (portable version)
- 介面: GUI, GNU software
- 輸出: 可輸出比較的檔案,如補綴檔案(選單: 工具 -> 產生補綴)、HTML檔案(選單: 工具 -> 產生報告)
- 比較檔案
- 比較萬國碼的檔案(unicode support): 可
- 標示行內差異的行內文字: 可
- 可比較Office檔案 教學: Library Views 圖書館觀點 » 如何比對 Excel 或 Word檔
- 如果同一檔案,但是不同「行尾字元」(Windows: CRLF, Unix: LF, Mac: CR),則整個檔案視為不同,需要手動轉換。 (選單: 檔案 --> 轉換行尾字元成... )
- 忽略以 Comment Syntax 為起首的該行的內文的差異: 可。 Using Filters - WinMerge 2.12 Manual
- 比較資料夾: 可。 不能忽略特定規則的檔案或資料夾。
- 大檔案比較: 超過 900MB 檔案會當掉
Compare It! v.4
- 介面: GUI, freeware
- 輸出: 可輸出比較檔案,格式有html、unix diff等 (Menu: File -> Report: Generate comparison report)
- 比較萬國碼的檔案(unicode support): 可
- 比較資料夾: 可,輸出左右欄內文比較的網頁檔 (實際測試有檔案漏掉)
- 大檔案比較:
DiffUtils for Windows 2.8.7
- 介面: command-line software, GNU software
- cmd> diff -durN 原始的檔名 更改後的檔名 > diff.txt
Diff Doc 3.27 - A compare files Tool. Compare document, Compare XLS-Text-RTF and other file types.
- 介面: GUI, freeware
- comment: 自作主張將movabletype的template轉成html,比較不出差異。安裝時不要選擇Traditional chinese,會造成介面亂碼
DiffMerge v.4.2.0 for Win & Mac
- 介面: GUI
- 輸出: 可輸出比較檔案 (選單列: Export --> File diffs)
- 比較檔案
- 比較萬國碼的檔案(unicode support): 可
- 標示行內差異的行內文字: 可
- 比較資料夾: 可
- 大檔案比較:
ExamDiff(TM) Version 1.8
- 介面: GUI, freeware
- unicode support: ExamDiff Freeware版本不支援 (Pro版本$有支援)
- comment: 輸出的比較檔案與DiffUtils相同僅有UNIX Diff File,但是缺乏DiffUtils選項設定,導致不易懂
FileZilla v.3.5.2
- 介面: GUI, freeware
- 輸出: 否
- 比較檔案: 否
- 比較資料夾: 可。 (1)僅比對資料夾的檔案日期 或 檔案大小 擇一。如果檔案內容相同,但檔案名稱不同,視為不同。 (2)如果子資料夾有不同檔案,不會在子資料夾標示上顏色。
- 大檔案比較:
Meld Diff Viewer for *unix like OS
- 介面: GUI, freeware
- 輸出: ?
- unicode support: ?
Notepad++ v.6.1.5 + Compare plugin[1][1]
- 介面: GUI, freeware
- 輸出: 不可輸出比較檔案
- unicode support: 可
TextDiff 4.2
- GUI, freeware & greenware
- 顏色標記差異處, 可輸出比較檔案(純文字檔, 不支援Unicode), 中文介紹: 免費免安裝的文字比較工具 - TextDiff | joaoko’s blog
KDiff3 0.9.97 (2012-08-12)
- 介面: GUI
- 輸出: 顏色標記差異處。可輸出比較檔案(選單: File -> Print)
- 比較檔案: 可比較萬國碼的檔案。 中文與數字夾雜時,數字位置有跑掉
- 比較資料夾: 可
- 大檔案比較:
Free Online File Compare Utility (access: 20090127)
- 介面: GUI 線上免費服務
- 顏色標記差異處, 不可輸出比較檔案, 中文介紹: CompareMyFiles.com 線上檔案比對工具-哈燒部落 I Want Hot News
- 中文UTF-8編碼的純文字檔ok, xml檔則變成亂碼
Compare Folders on the Mac App Store Version: 1.1.9
- 介面: GUI , shareware (Using BC with Command line scripting - Scooter Forums)
- 檔案比較: 無,需要額外付費購買 File Checksums
- 輸出:
- 比較資料夾: 可 資料夾內的檔案如果內容相同、時間不同,會視為兩個不同資料夾。
- 大檔案比較:
- OS: Mac
Visual Merge and Diff Tools: P4Merge | Perforce v. 2014.1/827578 for Mac
- 中文 ok
SourceGear | DiffMerge v. 4.2.0.697 for Win , Mac
- 無法選擇編碼,中文UTF-8編碼的純文字檔變成亂碼 (Mac 上測試)
DiffNow - Compare files online. Powered by ExamDiff Pro. 線上服務。介紹: DiffNow 線上文字檔/原始碼差異比較工具 [Last visited: 2016-03-31]
- 介面: GUI
- 輸出: html
- unicode support: ?
Linux diff command: 每天一個Linux指令- diff 指令(比較文件內容的差異 工具) @ jashliao的部落格 :: 痞客邦 PIXNET ::
- 介面: console
- 輸出:
- unicode support: ok
- 大檔案比較: 超過 900MB 會沒有反應一陣子,超過數分鐘後手動中斷
Beyond Compare v3.0 - The file compare, folder compare and remote directory compare utility from Scooter Software, ShareWare
- 介面: GUI , shareware (Using BC with Command line scripting - Scooter Forums)
- 輸出: 可輸出比較檔案 (選單列: Session --> Text compare report) Unicode 檔案ok
- 比較資料夾: 可 (1) Filtering the Folder Compare View (2) 資料夾內的檔案如果內容相同、時間不同,會視為兩個不同資料夾。
- 大檔案比較: 超過 5MB 的檔案反應速度快
- OS: Win & Mac
Total Commander 7.56a
- 介面: GUI
- 輸出: 顏色標記差異處, 不可輸出比較檔案
- 比較檔案(選單列: Files -->Compare by content)
- 比較萬國碼的檔案(unicode support): Unicode檔案變成亂碼
- 標示行內差異的行內文字: 否
- 比較資料夾: 可 (選單列: Commands --> Synchronize Dirs 再點選Compare, 建議勾選by content)
- 大檔案比較:
- OS: Win
UltraCompare v.8
- 介面: GUI, shareware
- 輸出: 顏色標記差異處, 不可輸出比較檔案
- 比較檔案
- 比較萬國碼的檔案(unicode support): 可
- 標示行內差異的行內文字: 可
- 比較資料夾: 可
- 大檔案比較:
- OS: Win & Mac
Compare++ - Structured file compare and merge tool v.1.7.2.x
- 介面: GUI
- 輸出: 可輸出比較檔案 (選單列: File --> Report)
- 比較檔案
- 比較萬國碼的檔案(unicode support): 可
- 標示行內差異的行內文字: 可
- 比較資料夾: 可
- 大檔案比較:
- OS: Win
Kaleidoscope — File comparison for Mac 免費試用 14 天
- 介面: GUI
- 輸出: 無
- 比較資料夾: 可 資料夾內的檔案如果內容相同、時間不同,會視為相同 。
- 大檔案比較: 超過 5MB 的檔案比較超過一分鐘
- OS: Mac
Other shareware:
- Araxis Merge for OS: Win & Mac
- ExamDiff Pro for OS: Win
Dropbox + diff tools
Dropbox 需要切換成英文介面(在 Dropbox 客戶端軟體設定),中文介面會導致 DropboxDiff 遇到檔案亂碼問題 (2013-04-29)
Supported diff tools quoted from official
"%ProgramFiles%\TortoiseSVN\bin\TortoiseMerge.exe" "%ProgramFiles%\KDiff3\kdiff3.exe" bash -c '"$HOME/bin/tkdiff" $1 $2' --------- tested: --------- "%ProgramFiles%\Beyond Compare 3\BCompare.exe"
編輯器設定
為了方便 diff ,使用 4 個 space 取代 Tab 按鍵[2]。
ex: Sublime Text v.2[3] Menu -> Preferences -> Settings - User
{ "tab_size": 4, "translate_tabs_to_spaces": true }
further reading
references
- ↑ How To Compare Two Text Files Using Notepad++
- ↑
- 寫出好維護的 PHP 程式碼 | 小惡魔 - 電腦技術 - 工作筆記 - AppleBOY
- Manual :: Indenting and Line Length Quote from PEAR Coding Standards: "Use an indent of 4 spaces, with no tabs. This helps to avoid problems with diffs, patches, SVN history and annotations."
- ↑ Indentation Settings - Sublime Text 2 Documentation