Home | 簡體中文 | 繁體中文 | 雜文 | 打賞(Donations) | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 知乎專欄 | Search | Email

36.2. Subversion 版本控制

  1. subversion 初始化

    1. trunk

    2. branches

    3. releases

    4. tags

    svn co svn://127.0.0.1/document
    cd project
    mkdir trunk
    mkdir tags
    mkdir branches
    mkdir releases
    svn ci -m "Initialized empty subversion repository in your_project"
    				
  2. 創建docbook文檔,安排章節

    將章節拆分成獨立檔案,並在主文檔頭部聲明

    		    	
    	<!ENTITY chapter.system SYSTEM "chapter.system.xml">
    	<!ENTITY chapter.system.harddisk SYSTEM "chapter.system.harddisk.xml">
    	<!ENTITY chapter.network SYSTEM "chapter.network.xml">
    		    	
    		    	

    完成後導入subversion的trunk中

  3. 創建版本分支

    $ svn copy svn://netkiller.8800.org/document/trunk svn://netkiller.8800.org/document/branches/system
    $ svn copy svn://netkiller.8800.org/document/trunk svn://netkiller.8800.org/document/branches/network
    				
  4. 開始寫作

    我們假設jam負責system章節

    1. checkout

      $ svn checkout svn://netkiller.8800.org/document/branches/system
      						
    2. 編輯檔案

      vim chapter.system.xml
      						
    3. 校驗XML

      $ export DSSSL=/usr/share/xml/docbook/stylesheet/nwalsh/xhtml/chunk.xsl
      $ xsltproc --stringparam html.stylesheet docbook.css ${DSSSL} book.xml
      						
    4. 提交檔案

      $ svn ci -m "I have finished this chapter."
      						

    其他編輯人員操作類似checkout自己branche上的network章節等等

  5. tags運作

    當jam完成了指派的任務的第一個階段後,可以創建一個tags

    svn copy svn://netkiller.8800.org/document/branches/system svn://netkiller.8800.org/document/tags/system_phase_I
    				

    tags 一旦建立,以後不會在更改

    然後jam可以在/document/branches/system繼續寫作

  6. 合併tags到主幹

    當tags完成後主編將其合併到trunk

    svn merge svn://netkiller.8800.org/document/tags/system_phase_I
    				

    然後發行unstable版本,你也可以每天產生一個快照。等待用戶反饋。

    反饋結果由負責人在/document/branches/system上修改,等待下一次發佈在下一個階段。

  7. 發行文檔

    當一切OK時,我就可以把trunk 複製到 releases 中,隨你怎命名。

    $ svn copy svn://netkiller.8800.org/document/trunk svn://netkiller.8800.org/document/release/document_v1.0
    				

    這個版本/document/release/document_v1.0就可以提供給讀者了。