Home | 简体中文 | 繁体中文 | 杂文 | 知乎专栏 | 51CTO学院 | CSDN程序员研修院 | Github | OSChina 博客 | 腾讯云社区 | 阿里云栖社区 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏多维度架构

30.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就可以提供给读者了。