版本控制服务器-SVN

详细资料
http://wiki.ubuntu.org.cn/SubVersion
https://www.ibm.com/developerworks/cn/java/j-lo-apache-subversion/
Windows环境下的移植TortoiseSVN
http://www.uml.org.cn/pzgl/200904246.asp
 

Subversion 是一款开放源代码的版本控制系统。和CVS的核心功能一样,都是用来配置C/S结构的版本控制系统,好像又类似于Microsoft的VSS,VSS和visual studio集成在一起的,而SVN可以单独安装。使用 Subversion,您可以重新加载源代码和文档的历史版本。Subversion 管理了源代码在各个时期的版本。一个文件树被集中放置在文件仓库中。这个文件仓库很像是一个传统的文件服务器,只不过它能够记住文件和目录的每一次变化。

SVN = 版本控制 + 备份服务器
简单的说,SVN是备份服务器,更好的是,他可以帮您记住每次上传到这个服务器的档案内容,并且自动的赋予每次的变更一个版本。

通常,我们称用来存放上传档案的地方就做Repository。基本上,第一次我们需要有一个新增(add)档案的动作,将想要备份的档案放到Repository上面。日后,当您有任何修改时,都可以上传到Repository上面,上传已经存在且修改过的档案就叫做commit,也就是提交修改给SVN server的意思。针对每次的commit,SVN server都会赋予他一个新的版本。同时,也会把每次上传的时间记录下来。日后,因为某些因素,如果您需要从Repository下载曾经提交的档案。您可以直接选择取得最新的版本,也可以取得任何一个之前的版本。如果忘记了版本,还是可以靠记忆尝试取得某个日期的版本。

为什么要使用版本控制工具?

1、备份工作档案是十分重要的。您永远不知道计算机上的硬盘何时会坏掉。根据经验法则再加上摩菲定理,坏事情往往都发生在最重要的时刻。例如,要release东西的前一刻,硬盘完全坏掉,无法修复。所以,常常备份工作数据是非常重要的。大部分公司的server都会有专门的备份机制,甚至是异地备援。绝对比放在自己的计算机里头,或是随身碟上面来的安全。

2、版本控管非常重要。您无法保证手头上最新版本永远都是对的。很多时候,在经过数天努力工作后,您才发现走错方向。需要将所有的修改回复到数天前版本。没有几个人能够完全记住自己修改过什么东西。如果没有做好版本控管,那么,最差的状况就是要全部重来。

3、伙伴间的数据同步也是非常重要的。很多时候,除了您个人外,还有其它的伙伴也需要您的档案。怎么把最新的档案提供给伙伴呢?用e-mail?根据经验,用e-mail是一个很差的办法。到了最后,根本就不知道哪一封e-mail才是新的。因为可能您最新的e-mail已经被当成垃圾信给丢了。别忘了,现在很多e-mail软件都有anti-spam的功能,说不定这些信件都被当成广告信给处理掉了。而且,您也应该知道一般档案如果放在e-mail内,档案大小会变得比较大(通常是原来的4/3倍以上)。如果每天更新一次,恐怕几天没收信的话,信箱就爆了!

4、如果没有一个好的办法,备份不同版本是很耗费硬盘空间的。例如:您有一个总共10MB的目录,使用单纯的档案备份。如果有10个版本就会变成100MB。20个版本就有200MB。如果,不想备份这么多版本,势必就是要减少备份的次数。拉长备份周期将会导致数据遗失的危险性增高。把旧的不需要的备份删除?根据经验,只要时间一拉长,您跟本就不知道一个月以前的版本是重要或者是不重要。

1、在作为服务器的linux主机上安装svn
 
  
  
  
  
  1. sudo apt-get install subversion 
  2. sudo apt-get install libapache2-svn  //使用http方式访问需安装

2、添加svn组,用于权限管理

  
  
  
  
  1. sudo addgroup subversion 
  2. sudo usermod -G subversion -a fenix 

3、创建svn项目文件夹

   
   
   
   
  1. sudo mkdir /home/svn 
  2. cd /home/svn 
  3. sudo mkdir myproject 
  4. sudo chown -R root:subversion myproject 
  5. sudo svnadmin create /home/svn/myproject 
  6. sudo chmod -R g+rws myproject 
 
4、直接访问文件仓库,check out文件
 
默认是使用file///方式登录
svn co file://localhost/home/svn/myproject
如果刚才安装了apache2的www服务器支持,可用http方式登录。首先要修改/etc/apache2/mods-available/dav_svn.conf文件,添加如下片段
 
    
    
    
    
  1. <Location /svn/myproject> 
  2. DAV svn 
  3. SVNPath /home/svn/myproject 
  4. AuthType Basic 
  5. AuthName "myproject subversion repository" 
  6. AuthUserFile /etc/subversion/passwd 
  7. <LimitExcept GET PROPFIND OPTIONS REPORT>  //注释掉可以登录时验证密码
  8. Require valid-user 
  9. </LimitExcept>  //这两行都需要注释掉
  10. </Location> 
添加登录用户和密码使用如下命令 
    
    
    
    
  1. sudo htpasswd -c /etc/subversion/passwd SVNfenix 

用户和密码信息在/etc/subversion/passwd中,要继续添加任使用htpasswd命令

5、如果成功访问文件仓库并签出,则再可以签入
签入使用import选项
     
     
     
     
  1. svn import /etc/svn/tmp/ file://localhost/home/svn/myproject/ 

6、是否签入成功进行查看

      
      
      
      
  1. svnlook info /home/svn/myproject

 

你可能感兴趣的:(SVN,职场,subversion,休闲,版本控制服务器)