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

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

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

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

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

[![TortoiseSVN - Log Messages - Compare revisions](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/26a160b3fcdb4601cebf-image_thumb.png)](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/d04b613e6915bb413851-image_2.png)

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

![TortoiseSVN - Log Messages - Compare revisions - Changed Files](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/bd53ad62104ed89b9975-image_5.png)

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

![TortoiseSVN - Log Messages - Compare revisions - Changed Files - 瀏覽資料夾](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/f9148239ce17f62c5916-image_8.png)

![匯出檔案中 ( Please wait... )](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/d2ddb9bc2732742c42b7-image_11.png) 

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