2015年1月13日 星期二

diff 兩個資料夾的某些內容並上色

目標:
使用diff像git diff比較兩資料夾下的所有檔案,排除某些資料夾,並上色

1. 使用git diff
http://stackoverflow.com/questions/5751567/git-diff-branch-name-status-ignore
$ git diff -w --name-only app/ ../cakephp-84/app/ | grep -v 'app/tmp/' | xargs git diff app/
fatal: ../cakephp-84/app/Controller/UsersController.php: '../cakephp-84/app/Controller/UsersController.php' is outside repository
原因:cakephp-84不在同一個git repos中,stackoverflow的解法似乎是比同個git下不同branch的東西

注意:git diff 必須在有.git的資料夾下才能使用,但如果只是簡單的比較不限定在該git下的檔案

2. 使用colordiff
安裝colordiff:
$ sudo pacman -S colordiff
使用:
$ diff -rw --exclude="tmp" --exclude="webroot" cakephp/app cakephp-84/app | colordiff | less -R
--exclude => 可以連續使用,不比較某些資料夾下的檔案
-r => 遞迴,連子資料夾一起比
-w => 不比較空白
colordiff => 也可以把最前面的diff直接換成colordiff,這樣後面就不用pipe line 去加colordiff
less -R => 直接用less配合colordiff會有亂碼,用這招移除ANSI編碼並轉成顏色

參考資料:



沒有留言:

張貼留言