TortoiseSVN Logo

TortoiseSVN 1.5 的新功能

詳細資訊如下所述。

TortoiseSVN 1.5 是所有先前 TortoiseSVN 版本的超集,並被認為是目前穩定且「最佳」的版本。1.0.x、1.1.x、1.2.x、1.3.x 或 1.4.x 中的任何功能在 1.5 中也都有,但 1.5 包含任何早期版本中沒有的功能和錯誤修正。

相容性考量

舊的用戶端和伺服器可以與 1.5 伺服器和用戶端透明地互操作。當然,除非用戶端和伺服器都是最新版本,否則某些 1.5 新功能可能無法使用。請參閱下表,了解哪些功能需要哪些版本

新功能最低用戶端最低伺服器最低儲存庫註釋
合併追蹤1.51.51.5
Cyrus SASL 支援 svn:// 儲存庫存取任何*,1.5任何*,1.5任何*有限制,僅支援 ANONYMOUS 和 CRAM-MD5

所有其他功能都與伺服器版本無關,可以不受任何限制地使用。

如需更詳細的相容性表格,請參閱 Subversion 發行說明

由於對工作副本程式庫進行了某些改進,因此工作副本格式的版本號已遞增。這表示早於 1.5 的 Subversion 用戶端將無法使用 Subversion 1.5 產生之工作副本。同樣地,儲存庫格式也已變更,這表示通常直接存取儲存庫的 pre-1.5 Subversion 工具(例如 svnservemod_dav_svnsvnadmin)將無法讀取最初由 Subversion 1.5 建立的儲存庫。

警告:如果 Subversion 1.5 用戶端遇到 pre-1.5 工作副本,它將在接觸到工作副本時自動升級工作副本格式,使其無法被較舊的 Subversion 用戶端讀取。如果您在機器上使用多個 Subversion 版本,則需要小心在哪個工作副本中使用哪個版本,以避免意外升級工作副本格式。但是,此「自動升級」功能不會發生在新的儲存庫格式中。

請參閱 Subversion FAQ 關於 工作副本格式變更 的說明。

合併追蹤

Subversion 1.5.0 中的合併追蹤在功能上大致相當於 svnmerge.py,記錄和使用合併歷史記錄以避免 重複合併 問題的常見情況,並允許挑選變更。它透過屬性公開合併歷史記錄,並允許儲存庫傾印/載入(包括重新建立合併歷史記錄索引的能力)。

注意:某些合併追蹤功能無法用於 pre-1.5.x 伺服器提供的儲存庫。

重複合併

在分支上工作時,Subversion 現在會追蹤每次合併的修訂版本。這使得合併變更(例如,從 trunk)變得更容易,因為始終可以合併整個修訂版本範圍,而不會有重複合併相同修訂版本的風險。Subversion 將在執行合併時自動省略已合併的修訂版本。

Log dialog showing already merged entries grayed out

從合併對話方塊顯示日誌以尋找要合併的修訂版本時,TortoiseSVN 會將已合併的修訂版本顯示為灰色,作為視覺提示。如果選取了灰色的修訂版本,Subversion 不會再次合併該修訂版本,因為它已經合併過了。

記錄手動合併

為了阻止修訂版本被合併,TortoiseSVN 在合併對話方塊中提供了一個名為「僅記錄」的按鈕。這將告訴 Subversion 該修訂版本已經合併,而無需執行合併本身。

合併資訊

使用日誌對話方塊檢查修訂版本時,發生合併的修訂版本的訊息通常不是很有用。大多數人以「merged revisions XXX to YYY from /branches/ZZZ」或類似形式撰寫日誌訊息。但是,在檢查資料夾/檔案的日誌時,真正有趣的是所有已合併修訂版本的日誌訊息。

Log dialog showing entries
    without merge history

如果您願意,TortoiseSVN 可以向您顯示這些日誌訊息。日誌對話方塊有一個核取方塊,啟用後將擷取所有已合併修訂版本的日誌訊息。已合併修訂版本的日誌條目會稍微縮排顯示。

Log dialog showing entries
    with merge history

稀疏檢出

許多使用者擁有非常大的樹狀結構,他們只想檢出某些部分。對於具有許多子資料夾的資料夾,某些子資料夾可能不需要。

TortoiseSVN 為使用者提供了一個組合方塊來選擇檢出的深度

  • 完整遞迴
  • 直接子項目,包含資料夾
  • 僅檔案子項目
  • 僅此項目

檢出的深度會被記住,以便稍後的更新將遵循該深度,而不會再次擷取所有內容。

Cyrus SASL 支援 svnserve

在 Subversion 1.5 中,svnserve 可以使用 SASL(簡單驗證和安全層)進行驗證和資料加密。TortoiseSVN 也實作了 SASL。以下 SASL 驗證方法適用於 TortoiseSVN 1.5

  • ANONYMOUS
  • CRAM-MD5
  • PLAIN
  • DIGEST-MD5
  • LOGIN
  • NTLM

SASL 還在某些方法中提供資料加密,因此您可以在透過網際網路傳輸資料時保護資料安全。使用 SASL 保護連線應該比設定 SSH 基礎架構更容易。

變更列表支援

有時您在工作副本中同時處理幾個不同的問題,並且很難追蹤哪些檔案涉及哪些變更。TortoiseSVN 現在允許您將檔案分組到邏輯變更列表中。這些會出現在「提交」對話方塊和「檢查修改」對話方塊中。除了提供視覺指示外,您還可以選取群組進行提交。

Commit dialog showing changelists
    grouped together

TortoiseSVN 還提供了一個名為 ignore-on-commit 的特殊變更列表。屬於該變更列表的檔案在「提交」對話方塊中不會被選取。如果您有一個必須保持版本控制但又不想提交其修改的檔案,這會很有幫助。

日誌快取

從儲存庫擷取日誌資訊可能需要很長時間,尤其是在儲存庫有數千個修訂版本或儲存庫不在快速連線上的情況下。

TortoiseSVN 1.5 可以將日誌條目快取在本機磁碟機上。只有尚未在本機快取中的條目才會從儲存庫擷取。

日誌快取不僅提高了日誌對話方塊的效能,也提高了修訂圖表的效能。

儲存庫瀏覽器

儲存庫瀏覽器已完全重寫,現在更像 Windows 檔案總管。它有兩個窗格,左側是樹狀檢視,右側是檔案/資料夾列表。

Repository Browser

重寫的一部分還包括在顯示非常大的目錄時提高效能。

也可以將檔案/資料夾從儲存庫瀏覽器直接拖曳到檔案總管,作為儲存/匯出這些檔案/資料夾的快速方法。

修訂圖表

自先前版本以來,修訂圖表已發生巨大變化。除了在可用時使用日誌快取外,它在分析日誌資料時也快得多。

圖表右上角的一個小視窗顯示整個圖表的概覽。

新的修訂圖表有更多選項可以調整輸出。例如,圖表的方向、節點在圖表中的排列方式,或應完全過濾掉哪些節點/路徑/URL。

用戶端 Hook 腳本

TortoiseSVN 允許在某些操作之前和之後執行用戶端腳本。可用的 Hook 有

開始提交 Hook
在顯示「提交」對話方塊之前呼叫
預先提交 Hook
在顯示「提交」對話方塊之後呼叫,但在實際提交之前
提交後 Hook
在提交完成後呼叫
開始更新 Hook
在更新之前呼叫,在聯絡儲存庫之前
預先更新 Hook
在更新之前呼叫,但在知道更新完成的修訂版本之後
更新後 Hook
在更新完成後呼叫

TortoiseMerge

行尾符號
不一致的行尾符號已正確處理,包括 MAC 行尾符號
還原
在衝突解決期間所做的變更可以逐一還原
編輯
目標檔案可以直接在 TortoiseMerge 中編輯,而無需使用文字編輯器

SubWCRev

SubWCRev 工具現在具有 COM 介面,可從腳本語言輕鬆存取。這使得將修訂版本資訊嵌入到 Microsoft Word 文件等中成為可能。

覆蓋圖示

如果您使用其他 Tortoise 用戶端(例如 TortoiseCVS),您可能知道 Windows 中覆蓋圖示插槽有限的問題。同時安裝 TortoiseSVN 和 TortoiseCVS 時,某些覆蓋圖示將不再顯示。這是因為 Windows 只有大約 12 個插槽可用於覆蓋圖示,而同時安裝這兩個應用程式時,該限制已用盡。

為了解決這個問題,我們為所有 Tortoise 用戶端實作了一個通用的覆蓋圖示處理程式。使用此處理程式,所有 Tortoise 用戶端都將顯示相同的覆蓋圖示並使用相同的覆蓋圖示插槽。這樣一來,我們就不會再輕易達到 Windows 的限制。

TortoiseSVN 1.5.x 和 TortoiseCVS 不穩定版本已經使用這個新的覆蓋圖示處理程式。

由於這個新的覆蓋圖示處理程式共享覆蓋圖示,TortoiseSVN 獲得了兩個新的覆蓋圖示:現在未版本控制和忽略的檔案也有覆蓋圖示。

Icon Overlays