### 二進制文件和轉化
在大多數情況下,Subversion比CVS更好的處理二進制文件,因為CVS使用RCS,它只可以存儲二進制文件的完整拷貝,但是,從內部原理上講,Subversion使用二進制區別算法來表示文件的區別,而不管文件是文本文件還是二進制文件。這意味著所有的文件是以微分的(壓縮的)形式存放在版本庫,小的區別會通過網絡傳輸。
CVS用戶需要使用`-kb`選項來標記二進制文件,防止數據的混淆(因為關鍵字解釋和行結束轉化),他們有時候會忘記這樣做。
Subversion使用更加異想天開的方法:第一,如果你不明確的告訴它(詳情見[“`svn:keywords`”一節](# "svn:keywords")和[“`svn:eol-style`”一節](# "svn:eol-style"))這樣做,它不會做任何關鍵字或行結束轉化的操作,缺省情況下Subversion會把所有的數據看作字節串,所有的儲存在版本庫的文件都處于未轉化的狀態。
第二,Subversion維護了一個內部的概念來區別一個文件是“文本”還是“二進制”文件,但這個概念*只*在工作拷貝非常重要,在**svn update**,Subversion會對本地修改的文本文件執行上下文的合并,但是對二進制文件不會。
為了檢測一個上下文的合并是可能的,Subversion檢測`svn:mime-type`屬性,如果沒有`svn:mime-type`屬性,或者這個屬性是文本的(例如`text/*`),Subversion會假定它是文本的,否則Subversion認為它是二進制文件。Subversion也會在**svn import**和**svn add**命令時通過運行一個二進制檢測算法來幫助用戶。這些命令會做出很好的猜測,然后(如果可能)設置添加文件的`svn:mime-type`屬性。(如果Subversion猜測錯誤,用戶可以刪除或手工編輯這個屬性。)
- 第1章介紹
- Subversion的歷史
- Subversion的特性
- Subversion的架構
- 安裝Subversion
- Subversion的組件
- 快速入門
- 第2章基本概念
- 版本模型
- Subversion實戰
- 摘要
- 第3章指導教程
- 導入
- 修訂版本: 號碼、關鍵字和日期,噢,我的!
- 初始化的Checkout
- 基本的工作周期
- 檢驗歷史
- 其他有用的命令
- 摘要
- 第4章分支與合并
- 使用分支
- 在分支間拷貝修改
- 常見用例
- 轉換工作拷貝
- 標簽
- 分支維護
- 摘要
- 第5章版本庫管理
- 版本庫的創建和配置
- 版本庫維護
- 添加項目
- 摘要
- 第6章配置服務器
- 網絡模型
- svnserve,一個自定義的服務器
- httpd,Apache的HTTP服務器
- 支持多種版本庫訪問方法
- 第7章高級主題
- 屬性
- Peg和實施修訂版本
- 外部定義
- 賣主分支
- 本地化
- Subversion版本庫URL
- 第8章開發者信息
- 使用API
- 進入工作拷貝的管理區
- WebDAV
- 使用內存池編程
- 為Subversion做貢獻
- 第9章Subversion完全參考
- svn add
- svn blame
- svn cat
- svn checkout
- svn cleanup
- svn commit
- svn copy
- svn delete
- svn diff
- svn export
- svn help
- svn import
- svn info
- svn list
- svn log
- svn merge
- svn mkdir
- svn move
- svn propdel
- svn propedit
- svn propget
- svn proplist
- svn propset
- svn resolved
- svn revert
- svn status
- svn switch
- svn update
- svnadmin
- svnadmin create
- svnadmin deltify
- svnadmin dump
- svnadmin help
- svnadmin hotcopy
- svnadmin list-dblogs
- svnadmin list-unused-dblogs
- svnadmin load
- svnadmin lstxns
- svnadmin recover
- svnadmin rmtxns
- svnadmin setlog
- svnadmin verify
- svnlook
- svnlook author
- svnlook cat
- svnlook changed
- svnlook date
- svnlook diff
- svnlook dirs-changed
- svnlook help
- svnlook history
- svnlook info
- svnlook log
- svnlook propget
- svnlook proplist
- svnlook tree
- svnlook uuid
- svnlook youngest
- svnserve
- svnversion
- mod_dav_svn Configuration Directives
- 附錄A.Subversion對于CVS用戶
- 目錄的版本
- 更多離線操作
- 區分狀態和更新
- 分支和標簽
- 元數據屬性
- 沖突解決
- 二進制文件和轉化
- 版本化的模塊
- 認證
- 轉化CVS版本庫到Subversion
- 附錄C.WebDAV和自動版本化
- 自動版本化交互性
- Subversion和DeltaV
- 術語表