這是歷史版本頁面 — 看 TortoiseSVN (64-bit) 最新版本

Windows 上追蹤程式碼改動,TortoiseSVN 到底能做什麼

TortoiseSVN (64-bit) 軟體圖示 TortoiseSVN (64-bit) 1.14.0 (64-bit) 資料更新 2020-05-28 閱讀約 7 分鐘

你正在改一個改了很久的專案,檔案散在好幾個資料夾裡,這幾天改了哪些東西、為什麼改、改壞了能不能退回上一個能用的版本,你心裡愈來愈沒底。尤其當你發現某段程式碼不知道被誰動過、也不知道是什麼時候動的,只能一個一個檔案打開來比對,那一刻你會希望有個東西能幫你把每一次改動都記錄下來。

一般人最直覺的做法是手動複製一份資料夾當備份,改到一半再複製一份,久了資料夾裡全是「final」、「final2」、「真的最後版」這種檔名,根本分不出哪個才是最新的。就算你很有紀律地寫筆記,也很難回答「這個檔案上禮拜長什麼樣子」這種問題。版本控制軟體就是為了解決這件事而存在的:它幫你記錄每一次變更、讓你可以隨時回頭看歷史、比對差異、甚至把整個專案倒回某個時間點。

01TortoiseSVN 是什麼?它跟一般備份有什麼不同?

它是一套 Windows 用的 Subversion(SVN)圖形介面客戶端,SVN 是集中式版本控制系統。跟備份最大的差別是,它記錄的是「每一次變更」而不是「某個時間點的整份複本」。你可以看到每個檔案在什麼時候被誰改過、改了哪些行,也可以隨時把某個檔案或整個專案回復到之前的任何一個版本,而且這些操作都直接做在 Windows 檔案總管裡。

02這套軟體要怎麼開始用?

安裝完之後,它會整合進 Windows 檔案總管的右鍵選單。你不需要先打開某個主視窗,只要在專案資料夾上按右鍵,就會看到 TortoiseSVN 的選單,裡面有 SVN Checkout、Commit、Update 這些指令。第一次使用時,你需要知道 repository 的網址(通常是 http、https 或 svn 開頭的位址)和帳號密碼,之後日常操作就都在右鍵選單裡完成。

03我一個人寫程式,也需要用版本控制嗎?

就算只有一個人,版本控制也有用。你寫到一半想試一個新做法,失敗了想退回原本的狀態,或是想回頭看三天前某個檔案的內容,這些都靠它。TortoiseSVN 的 Commit 可以讓你每次改動都留下紀錄,寫上這次改了什麼,之後要找「我上次修 bug 改了哪些檔案」就很快。一個人用 SVN 不需要架伺服器,用 file:// 協定指向本機資料夾就能建立 repository。

04分支和合併是什麼?一般開發者用得到嗎?

分支是從某個時間點複製出一條獨立的開發線,讓你在上面做實驗或開發新功能,不影響主線。合併是把分支上的改動整合回主線。如果你一個人開發、沒有同時維護多個版本的需求,可能用不太到;但如果你要同時維護正式版和開發版,或想試做一個大功能又不想弄亂主線,分支就很有用。TortoiseSVN 的 Branch/Tag 和 Merge 指令都在右鍵選單裡。

05怎麼知道某一行程式碼是誰改的、什麼時候改的?

用 Blame 功能。在檔案上按右鍵選 TortoiseSVN → Blame,它會把每一行程式碼列出來,標示這一行是在哪個版本、由誰、在什麼時候加入或修改的。Annotate 也是類似的功能。這在多人協作時特別有用,看到一段看不懂的程式碼,可以直接找出原作者來問。

06兩個人同時改了同一個檔案,會發生什麼事?

後提交的人會遇到衝突。TortoiseSVN 內建衝突解決工具,它會把兩個版本的差異列出來,讓你可以選擇要保留哪一邊、或手動合併兩邊的內容。處理完之後標記為已解決,再提交一次就好。雖然衝突處理需要一點學習成本,但至少不會有人默默覆蓋掉別人的改動。

07我完全沒用過版本控制,這套適合我嗎?

它的介面是英文的,而且整合在右鍵選單裡,對第一次接觸版本控制的人來說,需要先理解「工作複本、repository、commit、update」這些概念。不過它的操作方式很直覺——在檔案總管裡按右鍵就能做事,不用記指令。如果你願意花一兩天熟悉基本流程,它是可以上手的;但如果你想要有圖形化的歷史分支圖、或希望介面是中文的,它可能不是最友善的選擇。

08我們團隊現在用 Git,換成這套會比較好嗎?

這取決於你們的需求。TortoiseSVN 是 SVN 的客戶端,SVN 是集中式模型,所有歷史都放在伺服器上;Git 是分散式模型,每個人本機都有完整歷史。如果團隊已經在用 Git,換到 SVN 是很大的改變,工作流程、分支策略都要重新適應。除非有明確理由(例如要接一個既有 SVN 伺服器的專案),否則沒有必要為了換而換。

09我只有 Mac 電腦,可以用這套軟體嗎?

不行。TortoiseSVN 只支援 Windows,官方說明也明確指出它是專為 Windows 設計的。如果你在 Mac 上要連 SVN repository,需要找其他 Subversion 客戶端,例如 command line 工具或其他圖形介面軟體。另外要注意,新版 TortoiseSVN 的系統需求已經改為 Windows 10 以上,舊版才支援 Windows 7 和 8。

10介面只有英文,會不會很難用?

它的介面確實只有英文,沒有中文語系。不過因為它整合在 Windows 檔案總管,主要操作就是右鍵選單裡的幾個指令,常用的其實就是 SVN Update、SVN Commit、SVN Checkout 這幾個。對話框裡的說明文字是英文的,但用久了會記住位置。如果你對英文介面很排斥,可能要考慮其他有中文介面的版本控制工具。

11這套軟體評分人數不多,是不是代表不好用?

它的評分是 6.6/10,但只有 53 個人評分,樣本數很少,參考價值有限。從功能面來看,它整合 Windows 檔案總管、支援分支合併、Blame、衝突解決、hook scripts,功能算是完整。另外它近期仍有更新,不是被棄養的專案。不過如果你很在意社群活躍度和評價數量,GitHub Desktop 和 SourceTree 的評分人數都比它多,可以一起比較看看。

12它跟 GitHub Desktop 或 SourceTree 比起來,差在哪?

最大的差別是底層系統:TortoiseSVN 是 SVN(集中式),GitHub Desktop 和 SourceTree 是 Git(分散式)。Git 目前是主流,GitHub Desktop 整合 GitHub 平台,SourceTree 有圖形化介面。TortoiseSVN 的優勢是直接整合 Windows 檔案總管,不用另外開一個視窗;但如果你要接的是 Git repository,它完全幫不上忙。選擇的關鍵在於你的專案用的是 SVN 還是 Git。

下載與官方連結

前往官方網站 下載 TortoiseSVN (64-bit)

TortoiseSVN-1.14.0.28885-x64-svn-1.14.0.msi · 連結指向軟體原廠

版本紀錄

再看 5 筆

看完整版本清單

這一版改了什麼

What's new in this version:

- TortoiseSVN 1.14 is a superset of all previous TortoiseSVN releases, and is considered the current stable and "best" release. Anything in earlier versions is also in 1.14, but 1.14 contains features and bugfixes not present in any earlier release. This page describes only major changes. For a complete list of changes, you can check our commit logs. Don't forget to check out all the changes in the Subversion library that also is now at version 1.14: all those changes are of course in TortoiseSVN as well. See the full list of changes in the Subversion 1.14 release notes.
- TortoiseSVN 1.14 is the new Long-Term Support (LTS) release.
-
Requirements:
- TortoiseSVN 1.10 and later requires at least Windows 7 or later. It won't run on Windows Vista anymore.
- If you're still need to use those earlier OS, you have to keep using TortoiseSVN 1.9 for Windows Vista or TortoiseSVN 1.8 for Windows XP.

Shelving and Unshelving:
- Subversion 1.14 enables both version 2 and version 3 of the shelving functions. The version can be changed via the environment variable SVN_EXPERIMENTAL_COMMANDS.
- Please have a look at the Subversion notes about what values this variable can take. Note that if the variable is not set, TortoiseSVN defaults to v2.

Dark mode:
- You can enable a dark mode for all TortoiseSVN tools, i.e. TortoiseMerge, TortoiseIDiff, TortoiseUDiff, TortoiseBlame and even TortoiseSVN itself. The dark mode is enabled individually for each tool.
- Dark mode can only be enabled for Windows 10 1809 and later.
- For the TortoiseSVN dialogs, dark mode is available through the advanced settings page since not all controls are drawn in proper dark colors and therefore might not be suitable for all users.
- Various bugfixes.