在搭建svn服务器之前我们必须要明白

为什么要使用svn:是为了版本控制

那什么是版本控制:

版本控制是一种软件工程技巧,借此能在软件开发中确保不同人所编辑的同一 代码文件都能得到同步。

版本控制的其他作用:版本控制可以让版本库中的任意一个文件恢复到任意一 个历史版本,而且还可以追溯任意版本中任意一行在什么时候被什么人修改过版本控制还可以随时恢复以前某个版本.



1 并发修改:

多个开发人员同时对同一个文件进行修改  (重要)

       2 并发提交:

版本控制中的版本记录,是需要开发人员的提交操作来触发的,也就是说只有 提交才会记录版本号,否则不会记录版本号;如果修改了多个文件后提交那么

  CVS会一个一个提交,每个文件被修改后都会记录一个不同版本号,而SVN

GIT可以同时提交多个文件的修改,而且这一次被修改的多个文件记录的是 同一个版本号;那么这两种方式各有优缺点,每个文件都会记录一个版本号, 就会占用很大的磁盘空间,但是定位BUG十分方便只需定位版本号中即可,

SVNGIT就需要从批量的文件中查找,十分困难。

3历史轨迹:

如果说一个文件的文件名称被修改了那么CVS就无法追踪到修改文件名之前的

版本了但SVNGIT依然可以追踪所有的历史版本。

4分布式:

指的是是否需要一台专门的服务器来运行版本控制系统,CVS,SVN是集中式

的版本控制系统,那么它就需要一台专门的服务器来运行版本控制系统,而GIT

是分布式它不需要,每个开发人员的各自的电脑所组成的网络就可以运行GIT

 

LINXU SVN 的安装

   

创建代码库:  

#svnadmin create /path/repos可以通过绝对路径或者相对路径来创建

删除版本库

     

#  rm -rvf /path/repos   

版本库的配置及权限分组    

    版本库的配置文件位于版本库目录下的conf/文件夹



三个文件的功能




 svnserve.conf 详解

             

              anno-access = read

              未经验证的用户及没有用户名和密码的用户如何访问 版本库

              auth-access  = write

              通过验证的用户及有用户名和密码的用户如何访问版本库

              那么可选的值有三个:none,read,write

              none表示什么都干不了,read允许更新代码,write允许提交代码

             

              password-db = passwd           

              是用来制定用户的用户名以及密码配置的文件路径

             

              authz-db = authz

              用来制定权限分组配置文件的路径

             


             


              passwd 详解

              当前版本库的用户名和密码

             

             

                

              authz 详解

              用户和用户组权限


 启动SVN

# svnserve -d -r /svn/mysvn/

查看SVN进程

# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /svn/mysvn

 

检测SVN端口

# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN

 

停止重启SVN

# killall svnserve //停止
# svnserve -d -r /opt/svn/repositories // 启动

连接svn


上传之后的文件存储在:



Logo

更多推荐