SVN (Subversion) 的安装配置与应用(linux和windows)
一、什么是SVN(Subversion)
1、SVN,即Subversion,是一个自由开源的版本控制系统,可以将数据恢复到早期版本, 或者检查数据修改的历史,
这些数据可以是源代码,也可以是其他类型的文件。 在SVN出现之前,CVS是开源世界版本控制工具的事实标准,
然而CVS存在一些固有 的缺陷,并且修复这些缺陷需要耗费很大的精力,于是,SVN作为CVS的继任者出现了。
2、SVN:可以简单理解为一个版本控制器,主要实现多人协作开发文件共享和版本 控制的一个过程。
3、SVN的特点
1)根据文件修改的次数自动增加版本号以便找回历史文件
2)防止多人开发时同时修改一类文件导致文件覆盖或被删除
3)及时更新和获取其他开发者的最新数据和文件
4)有助于项目开发时的安全,责任细分化
二、SVN 控制器的工作原理和流程
1、通过每个用户提交来的数据生成版本 避免冲突和覆盖,并根据记录用户行为
三、安装与配置SVN服务器与客户端
1、服务器端软件:Setup-Subversion-1.6.5.msi(win32) 客户端软件:TortoiseSVN-1.6.5.16974-win32-svn-1.6.5.msi(win32)
2、安装好客户端的与服务端的后,新建server_svn文件夹-->右键-->TortoiseSVN-->create respository here
3、配置库文件的内容在 conf目录下面 authz(权限配置)、passwd(用户配置)、svnserve.conf(核心配置) 详细配置看server_svn文件夹
4、启动SVN服务器(cmd命令开启):我的路径是:D:\Program Files\Subversion_svn_server\bin\svnserve.exe -d -r D:\gxlweb\server_svn(不提示错误即成功)
5、连接SVN服务器:右键-->TortoiseSVN-->import.. ,输入svn://127.0.0.1-->输入账号密码即可连接。
6、增加SVN到windows服务中并自动启动(cmd添加):sc create svnservename binpath= "D:\Program Files\Subversion_svn_server\bin\svnserve.exe --service --root D:\gxlweb\server_svn" (我的路径),删除是:Sc delete svnservename(服务名称)
7、其他具体操作技巧不详说了。
以下是在linux下的安装方法与配置
第一章 安装
1. 采用源文件编译安装。源文件共两个,为:
subversion-1.6.4.tar.gz (subversion 源文件)
subversion-deps-1.6.4.tar.gz (subversion依赖文件)
注意文件版本必须一致,否则很容易产生各种奇怪的问题.
下载地址:http://subversion.ti?gris.org/downloads/s?ubversion-1.6.4.tar.?gz
http://subversion.ti?gris.org/downloads/s?ubversion-deps-1.6.4?.tar.gz
2. 上传以上两个文件到服务器上,解压。解压命令为:
tar -zxvf subversion-1.6.4.tar.gz
tar -zxvf subversion-deps-1.6.4.tar.gz
指令简介:tar 为解压命令,xfvz为tar命令的参数,用于解压tar.gz格式压缩的文件。
3. 解压后生成 subversion-1.6.4 子目录,两个压缩包解压后都会自动放到此目录下,不用手动更改。
4. 进入解压子目录: cd subversion-1.6.4
5. 执行 ./configure --prefix=/opt/subversion 进行配置设定并指明安装目录. 注意prefix前是两个减号. 默认不带BDB包, 所以默认使用的是FSFS模式. 若想使用BDB模式需另外下载BDB包.建议使用FSFS模式.两种模式比较参考以下链接:
http://doc.iusesvn.com/show-21-1.html
指令简介:configure命令用于检查安装平台和目标特征,prefix用于指定路径。
6. 执行 make 编译.
7. 执行 make install 安装.
8. 添加环境变量: vi /etc/profile
PATH=$PATH:/opt/subversion/bin
export PATH
在文件最后加入
9. 测试SVN是否安装成功,执行: svnserve --version
如果显示版本信息, 则安装成功。
如果出现: -bash: svnserve: command not found 可能需要重启下服务器:reboot
第二章 配置
本系统采用为每个项目单独建一版本库的策略。配置文件,密码文件,访问控制文件等都放在版本库的conf目录下。所以每次开始
一个新项目都必须新建一个版本库,并重新配置各配置文件。还有很重要的一条,要求各组员重新配置客户端,包括服务器版本库路径,
本地路径等信息。
1. 建立版本库目录(可建立多个,新建库后以下各项都需重新配置。注意区别安装目录与版本库目录,以下讲的都是版本库目录)
mkdir -p /opt/svndata/repos
2. 建立svn版本库(与上面目录对应)
svnadmin create /opt/svndata/repos
执行此命令后svn自动在repos目录下添加必须的配置文件.
注意:版本库不同于一般的文件夹, 直接在操作系统上新建文件无法被SVN识别, 必须使用import等命令将文件导入版本库.
此为svn内部指令,create用于新建版本库。请使用svn help查看详细说明。
3. 修改版本库配置文件
首先 cd /opt/svndata/repos/conf/ 进入到这个目录下看看里面有什么文件 ls
authz passwd svnserve.conf
有了这三个文件就可以进行配置了,如果没有则需要手工建立
4.每个文件配置如下:
svnserve.conf:
[general]
anon-access = read #控制非鉴权用户访问版本库的权限
auth-access = write #控制鉴权用户访问版本库的权限
password-db = passwd #指定用户名口令文件名 (一般只开启这个要用密码访问)
authz-db = authz #指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制
realm = /opt/svndata/repos #指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件
passwd:
[users]
# harry = harryssecret
# sally = sallyssecret
gxl = 123456
gxl001 = 123456 (格式:用户名 = 密码 )
authz:
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
adminss = gxl,gxl001
[/foo/bar]
adminss = rw
# &joe = r
# * =
5.查看svn服务是否起来了
lsof -i:3690 svn默认的端口号
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
svnserve 21643 root 3u IPv6 29208 TCP *:svn (LISTEN)
显示上面的信息说明已经起来了,需要用 kill -9 21643 然后 svnserve –d –r /opt/svndata/repos/
启动服务, 以deamon方式运行。
本系统采用svnserve方式, 这是小团队项目的推荐方法. 这种方法维护最少, 配置最简单.
指令简介:此指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,
可以使用“–listen-port=”或者“–listen-host=”来指定其它端口。-r选项用来指定svn服务的根目录,
这样用户就可以使用相对路径访问,而不用提供完整路径。
6.linux 端svn服务器到这里已经好了,windows端安装个svn客户端就可以访问了
第三章 开机启动
编辑 vi /etc/rc.local 文件
在文件最后加入 svnserve -d -r /opt/svndata/repos/即可
参考转载:http://apps.hi.baidu.com/share/detail/30798694
常用到的命令:
svnserve -d -r /opt/svndata/repos/ (以/opt/svndata/repos/里面的配置开启svnserve的服务)
lsof -i:3690 svn默认的端口号
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
svnserve 21643 root 3u IPv6 29208 TCP *:svn (LISTEN)
显示上面的信息说明已经起来了,需要用 kill -9 21643 然后 svnserve –d –r /opt/svndata/repos/