Subversion 權威指南

針對 Subversion 1.4 (根據 r2866 編譯)

Ben Collins-Sussman

Brian W. Fitzpatrick

C. Michael Pilato

本作品使用共同創造許可證,可以訪問http://creativecommons.org/licenses/by/2.0/或發送郵件到Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.查看本許可證。

(TBA)


目錄

前言
序言
讀者
怎樣閱讀本書
本書約定
排版習慣
圖標
本書的結構
本書是免費的
致謝
來自 Ben Collins-Sussman
來自 Brian W. Fitzpatrick
來自 C. Michael Pilato
Subversion是什麼?
Subversion 的歷史
Subversion的特性
Subversion 的架構
Subversion 的組件
1. 基本概念
版本庫
版本模型
文件共享的問題
「鎖定-修改-解鎖」方案
「複製-修改-合併」方案
Subversion 實踐
Subversion 版本庫的 URL
工作副本
修訂版本
工作副本怎樣追蹤版本庫
混合修訂版本的工作副本
總結
2. 基本使用
求助!
匯入資料到你的版本庫
svn import
推薦的版本庫部署
初始化檢出
禁用密碼快取
用其它身份認證
基本的工作循環
更新你的工作副本
修改你的工作副本
檢查你的修改
取消本地修改
解決衝突(合併別人的修改)
提交你的修改
檢驗歷史
產生歷史修改列表
檢查歷史修改的詳情
瀏覽版本庫
獲得舊的版本庫快照
有時你只需要清理
總結
3. 進階主題
版本清單
修訂版本關鍵字
版本日期
屬性
為什麼需要屬性?
操作屬性
屬性和 Subversion 工作流程
自動設定屬性
文件移植性
文件內容類型
文件的可執行性
行結束字元序列
忽略未版本控制的條目
關鍵字替換
鎖定
建立鎖定
發現鎖定
解除和偷竊鎖定
鎖定交流
外部定義
Peg 和實施修訂版本
網路模型
請求和響應
客戶端憑證快取
4. 分支與合併
什麼是分支?
使用分支
建立分支
在分支上工作
分支背後的關鍵概念
在分支間複製修改
複製特定的修改
合併背後的關鍵概念
合併的最佳實踐
常見用例
合併分支到另一分支
取消修改
找回刪除的項目
常用分支模式
使用分支
標籤
建立簡單標籤
建立複雜標籤
維護分支
版本庫部署
資料的生命週期
供方分支
常規的供方分支管理過程
svn_load_dirs.pl
總結
5. 版本庫管理
Subversion 版本庫的定義
版本庫開發策略
規劃你的版本庫結構
決定在哪裡與如何部署你的版本庫
選擇資料儲存格式
建立和設定你的版本庫
建立版本庫
實現版本庫鉤子
Berkeley DB 設定
版本庫維護
管理員的工具箱
修正提交消息
管理磁碟空間
Berkeley DB 恢復
版本庫資料的移植
過濾版本庫歷史
版本庫複製
版本庫備份
總結
6. 服務設定
概述
選擇一個伺服器設定
svnserve伺服器
svnserve使用SSH通道
Apache 的 HTTP 伺服器
推薦
svnserve,一個自行定義的伺服器
調用伺服器
內建的認證和授權
穿越 SSH 隧道
SSH 設定技巧
httpd,Apache的HTTP伺服器
先決條件
基本的 Apache 設定
認證選項
授權選項
額外的糖果
基於路徑的授權
支持多種版本庫訪問方法
7. 客製化你的 Subversion 體驗
運行設定區
設定區部署
設定和 Windows 註冊表
設定選項
本地化
理解地區
Subversion對區域設定的支持
使用外部(External)比較工具
外部(External) diff
外部(External) diff3
8. 嵌入 Subversion
分層的庫設計
版本庫層
版本庫訪問層
客戶端層
進入工作副本的管理區
條目文件
原始副本和屬性文件
使用 API
Apache 可移植運行庫
URL 和路徑需求
使用 C 和 C++ 以外的語言
代碼範例
9. Subversion 完全參考
Subversion 指令列客戶端:svn
svn選項
svn子命令
svnadmin
svnadmin 選項
svnadmin子命令
svnlook
svnlook選項
svnlook子命令
svnsync
svnsync選項
svnsync子命令
svnserve
svnserve選項
svnversion
mod_dav_svn
Subversion屬性
版本控制的屬性
未版本控制的屬性
版本庫鉤子
A. Subversion 快速入門指南
安裝 Subversion
快速指南
B. CVS 用戶的 Subversion 指南
版本號現在不同了
目錄的版本
更多離線操作
區分狀態和更新
狀態
更新
分支和標籤
Meta資料屬性
解決衝突
二進制文件和行結束標記轉換
版本化的模塊
認證
遷移 CVS 版本庫到 Subversion
C. WebDAV 和自動版本
什麼是WebDAV ?
自動版本化
客戶端交互性
獨立的 WebDAV 應用程序
文件瀏覽器 WebDAV 擴展
WebDAV文件系統實現
D. 第三方工具
E. 版權
索引

插圖清單

1. Subversion 的架構
1.1. 一個典型的客戶/伺服器系統
1.2. 需要避免的問題
1.3. 「鎖定-修改-解鎖」方案
1.4. 「複製-修改-合併」方案
1.5. 「複製-修改-合併」方案(續)
1.6. 版本庫的文件系統
1.7. 版本庫
4.1. 分支與開發
4.2. 開始規劃版本庫
4.3. 版本庫與複製
4.4. 一個文件的分支歷史
8.1. 二維的文件和目錄
8.2. 版本時間 - 第三維!

表格清單

1.1. 版本庫訪問URL
5.1. 版本庫資料儲存對照表
6.1. Subversion伺服器選項比較
C.1. 常用WebDAV客戶端

範例清單

5.1. txn-info.sh(報告異常事務)
5.2. 鏡像版本庫的 pre-revprop-change 鉤子
5.3. 鏡像版本庫的 start-commit 鉤子
6.1. 匿名訪問的設定實例。
6.2. 一個認證訪問的設定實例。
6.3. 一個混合認證/匿名訪問的設定實例。
6.4. 禁用所有的路徑檢查
7.1. 註冊表條目(.reg)樣本文件。
7.2. diffwrap.sh
7.3. diffwrap.bat
7.4. diff3wrap.sh
7.5. diff3wrap.bat
8.1. 使用版本庫層
8.2. 使用 Python 處理版本庫層
8.3. 一個Python狀態爬蟲