SVN

来源:互联网 发布:中国联通是什么网络 编辑:程序博客网 时间:2024/06/05 23:33

    SVN理论篇

  • 与配置管理的关系

       配置管理:在软件工程的学习中,我们就接触过“配置管理”的概念。说起配置,我们并不陌生。因为在挑选电脑,笔记本时,我们常常会关注电脑的配置怎么样,也就是看看电脑的CPU,内存,硬盘,显卡……怎么样。这里的配置主要指的是硬件。而我们说的配置管理中的配置,则指的是软件产品,它摸不着。配置管理也就是对我们的软件产品的一种管理。因为在开发过程中,我们的软件产品是不断变化的,同时会产生不同的版本。配置管理就是对变化的软件产品的一种有效保护。而SVN就是用于配置管理的一种工具

  • 为什么要使用配置管理工具?

       使每个人产生的工作成果共享,便于这些工作成果的更改维护,利于团队协作。

  • SVN工作原理

       由服务器和客户端组成。服务器以文件目录形式存放所有的版本,是一个存放各种版本的数据库。可以“追溯过去,可以记录现在”。客户端允许多个用户对从服务器中获得的副本进行操作,然后再提交到服务器中。就像我们做机房收费系统时,要修改基本数据,先从数据库中获得这些数据,然后在窗体上修改,最后再更新到数据库。区别就是,我们更新完了,原来的数据就被覆盖了。但是SVN中的服务器还能帮我们找到。

  • SVN与CVS

        CVS也是一款功能强大的配置管理工具,这个在自考书《软件开发工具》中有讲,大家可以结合着去看。

      SVN实践篇

  • 合并库

         假如要把A库合并到B库之下,则先把A库导出“dump”,再将其导入到B库之下“load”。

         

         

  • 分离库

       先将欲分离的文件夹所在的库导出“dump”,再用type命令,把该文件夹从库中分离出来“svndumpfilter”,然后再导入到一个新的库中“load”。

如图:我要把开发组下面的开发文档分离出来成为一个单独的库。

        

[plain] view plain copy
  1. svnadmin dump E:\Repositories\开发组 > E:\开发组.svn_dump  
  2. type E:\开发组.svn_dump | svndumpfilter include 开发文档 > E:\开发文档.svn_dump  
  3. svnadmin create E:Repositories\文档     
  4. svnadmin load E:Repositories\文档 < E:\开发文档.svn_dump      
        

  • 本地的Repositories文件夹与服务器端的Repositories是什么关系?为什么不能直接对Repositories文件夹下的库进行合并,分离?

       这个本地的版本库文件夹是用于存放SVN源代码和文件的,通过这些源代码可以对库进行管理,相当于是各个库实际的内部结构,而我们看到的服务器端的文件目录结构只是一种外部的组织表现形式。如果直接把一个库的文件夹移动到另一个库的文件夹,并不能达到我们要的效果。(大家最好亲自动手试试,看看是什么效果)。

                      

        总结

        自己对SVN的理解还很基础,它在实际的合作开发中应该起到了很大的作用,需要进一步的实践探索。