The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何讓 TortoiseSVN 僅匯出新增或修改過的檔案

對於已經上線的 ASP.NET 網站來說,後續的維護更新尤其重要,不過每次要更新的時候,都要人工檢視歷次的版本紀錄,檢查所有新增、修改、或刪除了哪些檔案,手動整理好這些檔案之後,再更新到正式主機。最麻煩的地方就是在於每次都要先找一個暫存的目錄,然後目錄一個一個的建立,然後把檔案一個一個的複製進來,完成之後壓縮起來寄給客戶或請相關人員批次更新,但是這麼多的「人工作業」難免有搞錯的機會,導致更新到錯誤的檔案或將檔案放到錯誤的目錄下等等。

雖然 TortoiseSVN 有提供 Create Patch 與 Apply Patch 等功能,不過客戶端的正式主機幾乎都沒有安裝 TortoiseSVN 軟體,所以可說是英雄無用武之地。所以長久以來,我一直苦苦追尋這樣的功能:「如何才能讓 TortoiseSVN 僅匯出新增或修改過的檔案呢?」這個功能我已經找了一年多了,好幾次有股衝動想寫這樣的軟體出來,因為每次要匯出差異的檔案真的很麻煩。

上週五,這個功能終於被我找到了!原來這功能老早就在 TortoiseSVN 中了,只是藏在雲深不知處,以下是本次重大的心得分享。

首先,必���先用 SVN Show log 功能列出所有 Revisions 紀錄,然後任選「兩個版本」後按右鍵選取 Compare revisions

TortoiseSVN - Log Messages - Compare revisions

然後會出現 Changed Files 視窗,這裡會列出這兩個版本間的所有差異項目,透過滑鼠或按鍵盤 Ctrl + A 全選後按下右鍵選 Export selection to ... 匯出這些差異項目。

TortoiseSVN - Log Messages - Compare revisions - Changed Files

然後會出現「瀏覽資料夾」視窗,選取好目錄按下「確定」按鈕後就會將你選取的這些檔案會出到這個目錄下了,還包括所有目錄的結構喔!

TortoiseSVN - Log Messages - Compare revisions - Changed Files - 瀏覽資料夾

匯出檔案中 ( Please wait... ) 

找到這個功能我感覺就像是挖到寶一樣,十分開心的!^_^