部署網站專案時,常需要比對本機檔案與伺服器端檔案差異,以決定需更新檔案清單。

我過去常用的方法是用Q-Dir列出兩個目錄的檔案清單,依日期排序後再使用"人肉比較器"找出最近更新的檔案。最近認識了Beyond Compare這套優秀的檔案同步軟體,還發現了一些可用在專案部署的好功能,順手整理成心得分享。

Beyond Compare是套商業軟體(非Freeware),3.0標準版美金30元,專業版則再多出 3方文字合併、SFTP支援、Source Control整合(例如: 直接Check In/Check Out VSS)、檔名比對/文字內容比對規則客製、Registry... 等等。除了比對工具必備的新舊內容左右對照合併操作外(如下圖),最讓我印象深刻的是它還支援圖檔、MP3、Office... 等檔案格式的比較。

發現連Excel(*.xlsx)的內容都能被解析比對時,讓我有起雞皮疙瘩的感覺...

Beyond Compare的功能細節還有很多,詳細的說明可參考官方線上文件,這裡就只聊聊在專案部署上可能的應用。

【網站檔案部署】

針對開發環境部署到測試環境的場合,一般程式上線管控不用太嚴謹,則可用Folder Sync功能比對新舊目錄的檔案差異,列出並選取要更新的檔案項目,按一下Sync Now就一次複製過去。

【部署檔案清單】

在正式環境或驗收測試環境的部署,由於開發人員多半不具有更新權限,必須提出申請由另外的OP人員負責執行部署更新,因此需要產出待部署檔案清單,某些稽核要求更嚴的系統,變更現有程式時,甚至還需附上程式碼變更的細節存查,此時Beyond Compare的報表功能便可派上用場。

拿前些日子提過的黑暗英語單字複習網站當範例:

1.新增一個Folder Compare Session,左邊是待上線的版本、右邊是目前營運的版本

2.選取Show Left Newer and Left Orphans(左邊版本較新或是新增項目),就可得到上圖的結果。

3.選取主選單Session的Folder Compare Report,會彈出報表格式設定對話框

4.報表分為Site-By-Side、Summary及XML Dump,按一下"View In Browser”還可以直接在瀏覽器中檢視HTML格式輸出效果。(但有一點美中不足。Beyond Compare 3雖然已支援Unicode檔案名顯示,但是報表的部分卻仍採用ANSI格式,中文環境下使用BIG5編碼,會造成一些顯示問題(如下圖中的路徑符號),Unicode難字也會變成"?"。)

HTML格式雖然精美,但實務上線單的部署清單的格式多會有制式規定,將報表輸出成XML,再另外寫程式將XML轉換成規定的格式,會較符合企業需求。

【程式異動對照表】

最後,如要產生程式碼修改對照報告,可以在比對介面上選取要比對的檔案,從右鍵清單選取File Compare Report:

在Text Compare Report設定上,可考慮將Report layout設為Side-by-side(左右參照)、勾選Ignore unimportant(忽略空白換行等不重要的差異)、限定"Differences"(只包含有差異的部分,Show Context指會多加上前後文,多半非必要)、勾選Include line numbers才會顯示行號。

程式異動參照文件的輸出結果如下,應可滿足一般稽查需求。


Comments

Be the first to post a comment

Post a comment