CVS 雖然普及但缺陷明顯:二進制文件處理差 (全量存儲)、不支持文件/目錄移動重命名 (丟失歷史)、無原子提交 (部分提交導致庫不一致)。Subversion 從根本解決這些問題:
Subclipse 將 Subversion 无缝集成到 Eclipse IDE,提供圖形化操作界面,消除命令行切換成本。
Help → Software Updates → Find and InstallSearch for new features to install → NextNew Remote Site:Name=Subclipse, URL=https://subclipse.tigris.org/update_1.0.xSubclipse 完成安裝,重啟 EclipseWindow → Show View → Other → SVN RepositoryNew → Repository Locationhttps://svn.example.com/repo/project 或 svn://server/repo),Finish在 SVN Repository 視圖右鍵項目 → Checkout,兩種模式:
注意:檢出後必須手動刷新/配置 Java Build Path (源碼目錄、庫依賴)。
Team → Share Projectbin/、.classpath、.project、生成文件、臨時文件)| 操作 | 用途 | 關鍵參數 |
|---|---|---|
Update | 從倉庫拉取最新變更 | 可選修訂版本 |
Commit | 提交本地變更 | 輸入日誌、勾選文件、可排除 |
Synchronize with Repository | 雙向對比:本地修改 vs 倉庫修改 vs 衝突 | 雙欄/三欄對比編輯器,可視化衝突解決 |
Add to Version Control | 將新文件納入管理 | 提交時生效 |
Revert | 撤銷本地未提交修改 | 不可恢復,慎用 |
右鍵文件/目錄 → Team → Set Property,內置實用屬性:
svn:executable:設置可執行位 (Unix/Linux)svn:needs-lock:強制獨佔鎖 (二進制文件必備)。加鎖後文件只讀,需 Team → Get Lock 編輯,Release Lock 或 Commit 釋放svn:mime-type:指定 MIME 類型,影響 diff/merge 行為svn:ignore:目錄層級忽略模式 (如 *.class、target/)svn:keywords:關鍵字展開 ($Id$、$Rev$ 等)svn:externals:外部定義,引入其他倉庫路徑Team → Branch/Tag 對話框:
/tags/Release_1.0 或 /branches/feature-xyz)Switch working copy to new branch/tag (創建後自動切換)Subversion 以「廉價複製」實現:Tag/Branch 僅記錄源修訂的指針,幾乎零空間零時間。切換分支:Team → Switch,僅更新差異文件。
Team → Show in Resource History:查看文件/目錄/項目完整歷史Revert changes from this revision (反向合併撤銷)項目根目錄設置 svn:ignore:
*.class
*.log
target/
bin/
.settings/
.project
.classpath
*.tmp
*.bak
全團隊共享,避免垃圾文件入庫。
[模塊] 簡短摘要 (關聯Issue號)
- 詳細變更點1
- 詳細變更點2
示例:[UserService] 修復登錄失敗問題 (#1234) - 修正密碼加密邏輯 - 增加單元測試覆蓋
Release_1.0.0),合併修復回 TrunkSynchronize 發現衝突 (紅雙箭頭圖標)Use Theirs/Use YoursMark as MergedCommit 合併結果對圖片、文檔、編譯產物等不可合併文件,強制 svn:needs-lock,避免雙方同時修改產生無法合併的衝突。
Subclipse 將 Subversion 的強大功能原生注入 Eclipse:
配合規範的忽略模式、日誌格式、分支策略,Subclipse + Subversion 成為 Eclipse 團隊開發的標準源碼管理方案。