### 快速入門
許多人為“從頭到尾”的方式讀一本介紹有趣新技術的書感到發愁,這一小節是一個很短的介紹,給許多“實用”的用戶一個實戰的機會,如果你是一個喜歡通過實驗進行學習的用戶,以下將告訴你怎么做,相對應,我們給出這本書相關的鏈接。
如果版本控制或者Subversion和CVS都用到的“拷貝-修改-合并”模型對于你來說是完全的新概念,在進一步閱讀之前,你首先要讀[第2章 *基本概念*]( "第2章基本概念")。
### 注意
以下的例子假定你有了**svn**這個客戶端程序,也有**svnadmin**這個管理程序,你的**svn**也應該在Berkeley DB的基礎上進行編譯。為了驗證這些,運行**svn --version**,確定ra_local模塊存在,如果沒有,這個程序不能訪問`file://`的URL。
Subversion存儲所有版本控制的數據到一個中心版本庫,作為開始,新建一個版本庫:
~~~
$ svnadmin create /path/to/repos
$ ls /path/to/repos
conf/ dav/ db/ format hooks/ locks/ README.txt
~~~
這個命令建立了一個新的目錄 `/path/to/repos`,包含了一個Subversion版本庫。確定這個目錄在本地磁盤上,而*不是*一個網絡共享,這個新的目錄保存著一些Berkeley DB的數據庫文件,你打開后看不到你的已經版本化的文件。更多的版本庫創建和維護信息,見第5章[第5章 *版本庫管理*]( "第5章版本庫管理")。
第二步,建立一些將要導入到版本庫的文件與目錄,為了以后使用更清楚(見[第4章 *分支與合并*]( "第4章分支與合并")),你的文件應該包括三個頂級子目錄,分別是`branches`、`tags`和`trunk`:
~~~
/tmp/project/branches/
/tmp/project/tags/
/tmp/project/trunk/
foo.c
bar.c
Makefile
…
~~~
一旦你有了樹形結構和數據你就可以繼續了,使用**svn import**導入數據到版本庫(見[“**svn import**”一節]( "svn import")部分):
~~~
$ svn import /tmp/project file:///path/to/repos -m "initial import"
Adding /tmp/project/branches
Adding /tmp/project/tags
Adding /tmp/project/trunk
Adding /tmp/project/trunk/foo.c
Adding /tmp/project/trunk/bar.c
Adding /tmp/project/trunk/Makefile
…
Committed revision 1.
$
~~~
現在版本庫已經包含你的目錄和數據了,注意原先的`/tmp/project`目錄沒有任何變化;Subversion不管這個,(事實上,你甚至可以任意刪除這個目錄)。為了處理 版本庫的數據,你需要創建一個新的包含數據的“工作拷貝”,一個私人的工作空間。告訴Subversion來“取出”版本庫的`trunk`目錄:
~~~
$ svn checkout file:///path/to/repos/trunk project
A project/foo.c
A project/bar.c
A project/Makefile
…
Checked out revision 1.
~~~
你現在在`project`目錄里有了一個版本庫的個人拷貝,你可以編輯你的工作備份中的文件,并且提交到版本庫。
-
進入到你的工作備份,編輯一個文件的內容。
-
運行**svn diff**來查看你的修改的標準區別輸出。
-
運行**svn commit**來提交你的改變到版本庫。
-
運行**svn update**將你的工作拷貝與版本庫“同步”。
對于你對工作拷貝可做操作的完全教程可以察看[第3章 *指導教程*]( "第3章指導教程")。
目前,你可以選擇使你的版本庫在網絡上可見,可以參考[第6章 *配置服務器*]( "第6章配置服務器"),學習使用不同的服務器以及配置。
- 第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
- 術語表