TortoiseSVN 1.2 新功能
- 可選的鎖定 ("保留取出")
- 全新、大幅改進的覆蓋圖示快取
- 與 TortoiseCVS 共存時更好地使用覆蓋圖示
- 許多改進的對話方塊
- 許多錯誤修正
- 實作所有新的 Subversion 1.2 功能
- 連結到 SVN 1.2
相容性考量
TortoiseSVN 1.2 與 1.0 和 1.1 伺服器相容。當然,除非伺服器升級到最新版本,否則某些新的 1.2 功能可能無法使用。
如果您使用 file://
存取方式存取 BDB 儲存庫,則需要將該儲存庫更新為 BDB 4.3 格式。有關如何操作的說明,請參閱 Subversion 常見問題頁面
Subversion 1.2 引入了一種替代的歷史紀錄儲存機制,稱為 xdelta 差異。從以新格式儲存的儲存庫重建舊資料要快得多,從而在 blame、checkout、diff 和 merge 等操作中實現顯著的速度提升。雖然不需要轉換儲存庫,但您可能希望這樣做以獲得更快的存取速度。為此,您需要使用命令列 svnadmin 工具執行 dump/load 循環。請查看 Subversion 手冊,以取得有關如何操作的說明。
TortoiseSVN 1.2 不再支援 Windows 98/Me 和 Windows NT 4.0 作業系統。這不是因為我們不友善,而是因為這些較舊的作業系統版本中有太多不相容之處,我們必須繞過這些不相容之處,而且由於沒有任何開發人員使用這些系統,因此無法正確地測試和偵錯。如果您想在這些系統上使用 TortoiseSVN,則應使用仍然可以從我們的下載頁面取得的 1.1.x 版本線。
新功能
檔案鎖定 (也需要更新的伺服器)
「鎖定」是一項長期以來一直被要求的功能,在其他系統中通常稱為「保留取出」。雖然 Subversion 仍然主要是一個專注於平行開發的 複製-修改-合併 系統,但人們普遍認可並非所有檔案都容易合併 — 特別是二進制檔案,例如美工圖案、壓縮檔、專有二進制格式或任何其他非基於行的資料。
新鎖定功能的目標有兩個。首先,提供一種強制對檔案進行序列化寫入存取的方式。其次,提供一種溝通機制,以防止使用者在無法合併的變更上浪費時間。
第一個目標是透過檔案鎖定來實現的。TortoiseSVN 具有新的內容選單項目,用於 取得鎖定
和 釋放鎖定
。當使用者鎖定檔案時,其他使用者不得提交對檔案的變更或從儲存庫中刪除它。
鎖定也可以被盜取或破解,例如,如果鎖定檔案的人去度假並忘記解鎖。系統管理員可以使用新的鎖定 Hook 來設定自己的鎖定策略。有關儲存庫管理的詳細資訊,請參閱 Subversion 文件。
第二個目標 — 防止使用者在無法合併的變更上浪費時間 — 是透過一個新的屬性 svn:needs-lock
來實現的。鼓勵使用者(或管理員)在任何無法合併的檔案上設定此屬性。當存在時,此屬性會導致檔案處於唯讀狀態,除非 工作副本持有檔案的鎖定權杖,在這種情況下,檔案是可讀寫的。TortoiseSVN 使用新的狀態覆蓋圖示來指示檔案何時處於唯讀狀態,這會警告您在編輯之前需要取得鎖定。
警告:如果您有一個團隊的使用者都透過 file://
存取儲存庫,那麼所有使用者都必須使用 1.2 客戶端。1.2 之前的客戶端會不知情地忽略鎖定。
全新的外部狀態快取
TortoiseSVN 始終具有遞迴覆蓋圖示功能,較低層級資料夾中的覆蓋圖示變更會向上傳播到資料夾階層中,以便您不會忘記您在樹狀結構深處所做的變更。但是,在之前的版本中,由於取得狀態資訊的延遲,此功能僅適用於非常小的工作副本。
在 1.2 版本中,使用了一個新的 TSVNCache
程式來維護您的工作副本狀態快取,從而提供更快地存取此資訊的速度。這不僅可以防止檔案總管在取得狀態時被封鎖,而且還使遞迴覆蓋圖示變得可行。
注意:檔案總管在使用新的快取時反應更快,因為它會在完整資訊可用之前顯示頁面,並在需要時刷新。這表示您立即看到的狀態可能不是遞迴狀態,而是非遞迴狀態。根據您的工作副本的大小,遞迴狀態可能需要一兩秒鐘才能過濾出來。
如果檔案的時間戳記變更而內容沒有變更,Subversion 一直存在速度問題。這迫使 Subversion 對檔案與 BASE 進行逐位元組比較,以檢查它是否真的已變更。在這個新版本中,您可以使用 Cleanup
選單項目修復此類時間戳記不符。如果您的 WC 檢查速度變慢,請嘗試執行清除。
更好地使用覆蓋圖示
Windows 僅支援 15 個圖示覆蓋圖示,並且自身使用其中 3 個。如果同時安裝了 TortoiseSVN 和 TortoiseCVS,則根本沒有足夠的覆蓋圖示用於這兩個應用程式。
在此版本中,TortoiseSVN 會檢查其他應用程式需要多少覆蓋圖示,並且如果沒有足夠的覆蓋圖示供所有人使用,則僅安裝必要的覆蓋圖示。如果首選的覆蓋圖示不可用,它也會顯示替代覆蓋圖示。例如,如果 Added
覆蓋圖示不可用,則將改為使用 Modified
覆蓋圖示。
增強功能和錯誤修正
這是一個主要的新版本,幾乎所有主要的對話方塊都以某種方式得到了改進,無論是新增功能還是使其更易於使用。下面提到了一些主要的對話方塊,並且還有許多小的錯誤修正。若要查看完整的變更列表,請查看 ChangeLog
合併對話方塊
這已進行了相當大的變更,以使合併這個困難的主題更易於理解和使用。您現在可以使用修訂記錄對話方塊選擇要合併的修訂版本,而無需嘗試計算要插入修訂版本框中的正確數字。
記錄對話方塊
新的篩選器允許您在記錄訊息中搜尋,或限制為日期範圍。
新的 Subversion 1.2 API 允許您提取給定數量的記錄訊息,而不是給定數量的儲存庫修訂版本的記錄訊息。這使得顯示有用的訊息數量以及根據需要取得更多訊息變得更加容易。
注意 - 此功能最適用於 Subversion 1.2 伺服器。它適用於較早版本的伺服器,但速度會很慢。伺服器不理解新參數並傳回所有記錄訊息,然後 Subversion 用戶端會對其進行篩選。這會導致非常慢的回應速度。TortoiseSVN 有一個設定,允許您在使用舊版伺服器時使用舊版 API。
您現在可以比較資料夾的兩個修訂版本。TortoiseSVN 將列出已變更的檔案,讓您可以個別比較每個檔案。
您現在可以個別調整記錄對話方塊的 3 個窗格大小。
記錄對話方塊還有許多其他新的內容選單,可讓您執行更多操作。
提交對話方塊
自動完成現在使用正則表達式來提取一些與語言相關的關鍵字(通常是類別/方法/變數名稱)。
Bugtracking 整合已使用正則表達式進行擴展,使其更容易挑選您的 issue ID。請在 Issue Tracker Integration Spec 中閱讀有關此內容的資訊。
註解歷史記錄現在插入到目前游標位置,而不是始終插入到任何現有訊息的開頭。
儲存庫瀏覽器
幾個新的內容選單項目,可讓您直接從瀏覽器匯出或檢出。
使用 Windows 檔案關聯或您選擇的程式開啟檔案。
清除
Subversion 1.2 為 Cleanup 命令新增了額外功能,使其現在可以進行更多修復。如果工作副本檔案的時間戳記與 Subversion 記錄的時間戳記不符,但檔案長度相符,則 Subversion 會執行逐位元組檢查,以查看檔案是否真的不同,這可能會減慢狀態檢查速度。
Cleanup
現在會檢查這些檔案,如果內容相符,它會重設其時間戳記記錄,以便將來的檢查執行速度更快。如果您的工作副本在 Check for Modifications
和 Commit
對話方塊中產生檔案列表的速度非常慢,請嘗試在您的工作副本上執行 Cleanup
。如果您使用了 Use commit timestamps
選項,則絕對應該這樣做。
設定對話方塊
設定對話方塊現在具有更新的介面,該介面不再那麼擁擠且更易於使用。選項也以更符合邏輯的方式分組,因此您知道在哪裡尋找東西。
TortoiseMerge
您可以選擇在查看檔案差異時忽略大小寫差異。這對於 VB 原始碼很有用,VB 原始碼有時會被 IDE 變更。