软件版本控制SVN服务器搭建

本文介绍Subversion(SVN)作为一款自由/开源版本控制系统的功能和优势,包括如何安装配置SVN服务器及客户端,创建版本库,进行基本的版本控制操作,以及启动SVN服务器和服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是Subversion?

Subversion 是一个自由/开源的版本控制系统。也就是说,在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。于是我们就可以籍此将数据回复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。

Subversion 的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。因为修改不再是单线进行(单线进行也就是必须一个一个进行),开发进度会进展迅速。此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量—如果出现不正确的更改,只要撤销那一次更改操作即可。

某些版本控制系统本身也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性—比如,对编程语言的支持,或者提供程序构建工具。不过Subversion并不是这样的系统。它是一个通用系统,可以管理任何类型的文件集。对你来说,这些文件这可能是源程序—而对别人,则可能是一个货物清单或者是数字电影。

 

一、获取资源
(1)CollabNetSubversion-server-1.6.6-4.win32.exe SVN 服务器端
http://subversion.tigris.org/
(2)TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi SVN 的客户端
http://tortoisesvn.tigris.org/
(3)LanguagePack_1.6.6.17493-win32-zh_CN.msi 中文简体的语言包 (能看英文的话就不用下)
服务器和程序下载 : http://subversion.tigris.org/getting.html#binary-packages  

Windows常用客户端TortoiseSVN:http://tortoisesvn.net/downloads

AnkhSVN(Visual Studio插件):http://ankhsvn.open.collab.net/

Subclipse(Eclipse插件):http://subclipse.tigris.org/

SCPlugin(Mac OS x客户端):http://scplugin.tigris.org/

 



二、安装
上面的 1 、 2 、 3 均为直接安装即可,注意在安装完1再安装3的时候要重启一下,然后将4 解压到1 中安装目录下的 bin 目录中。至此安装完毕

三、配置
没什么好特别配置的。基本上安装好了就可以使用,使用方式是用 32的客户端工具选择一个空的文件夹右键 ---- à在此创建文件库。选择默认的格式后确定,一个 SVN 的仓库文件就创建完毕。然后转到项目或者你想加入版本控制的文件或者文件夹上面,点右键选择导入,在弹出的对话框里面输入仓库地址,执行导入完毕后一个完整的文件版本诞生了。
注意:在导入时2中的客户端默认是导入当前文件夹的子文件夹,所以如果你想将当前目录也导入的话,请将他放入一个文件夹内再执行导入操作。
然后是仓库的配置:转到仓库目录的 conf 中,寻找 svnserve.conf 文件并将其中的
[general]
anon-access = read
auth-access = write
password-db = passwd
realm = My First Repository
前面的 # 号去掉,然后去掉他前面的空格。保存。
这里的意思是: anon-access 匿名访问的权限,可以是read,write,none,默认为read,这个建议配为none
auth-access
认证用户的权限,可以是read,write,none,默认为write
password-db
密码数据库的路径,去掉前面的,存的是认证用户的用户名和密码,username=passwd
然后是修改 passwd 文件
1.
去掉 [users] 前面的 #, 否则 svn 只能以匿名用户登录,客户端不会出现登录窗口,除非你的 anon 不为 none, 否则将返回一个错误。
2.
添加用户名和密码 username=password

四、启动 SVN 服务器
1:对于单个代码仓库
启动命令 svnserve -d -r 文件夹路径 --listen-host 192.168.100.200
其中 -d 表示在后台运行, -r 指定服务器的根目录,这样访问服务器时就可以直接用 svn:// 服务器 ip 来访问了。如果服务器有多 ip 的话 --listen-host 来指定监听的 ip 地址 . 我们可以在 svn 客户端中通过 svn://192.168.100.200 来访问 svn 服务器
2:对于多个代码仓库
我们在启动时也可以用 -r 选项来指定服务器根目录 , 但访问时需要写上每个仓库相对于 svn 根目录的相对路径 . 比如 , 我们有两个代码仓库 /home/repoa 和 /home/repob, 我们用 svnserve -d -r /home --listen-host 192.168.100.200 来启动 , 那么在客户端访问时可以用 svn://192.168.100.200/repoa 和 svn://192.168.1.200/repob 来分别访问两个项目启动完成以后 , 我们可以用 ps aux|grep svnserv 来查看是否存在 svnserve 进程.

 

 

3:创建成为系统服务

sc create svnserve binPath= "/"C:/Program Files/Subversion/bin/svnserve.exe/" --service --root D:/服务根目录" displayname= "Subversion Repository" depend= Tcpip start= auto


五、开放服务器端口
svn
默认端口是 3690 ,你需要在防火墙上开放这个端口。也可以通过 svnserve 的 --listen-port 选项来指定一个已经开放的其他端口 , 不过这样的话客户端使用也必须家上端口 , 如 svn://192.168.100.200:9999/.......

六:初始化导入
来到我们想要导入的项目根目录,比如说E:/svndemo/initproject:
1.
右键->TortoiseSVN->Import…
2. URL of repository
输入”svn://localhost/trunk” 如果不是本机localhost改为IP,trunk是你定的版本服务目录
3. ok
完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本库中。


基本客户端操作
1
:取出版本库到一个工作拷贝:
来到任意空目录下,如E:/svndemo/wc1,运行右键->Checkout,在URL of repository中输入svn://localhost/trunk,这样我们就得到了一份工作拷贝。
2
:提交客户端修改到版本库中:
来到你的工作目录,运行右键-〉SVN Commit则你的改动更新到服务器上,为了再出现问题时能快速的找到问题,建议大家提交时在log中写上注释。为防止大家同时对一个资源进行修改,大家在提交的时候可以对要修改的文件加锁,提交栏的左下方打勾。
3
:更新版本库中的修改到客户端
来到你的工作目录,运行右键-〉SVN Update则将版本库中的改动更新到你的工作目录中。这时可能会出现一些问题,比如版本库中的改动可能会与你的改动合并或者发生冲突,当发生冲突时,则客户端不更新,你需要手动选择使用哪个版本。其他的情况不必考虑。
4
:其他的一些常用操作
有更多的功能在右键-〉 TortoiseSVN中,如果看的懂的话基本会用的,常用的有show log查看日志;Check for modifactions查看版本库改动;resolved选择在冲突后你要的版本;Update to revision 选择要更新到哪个版本,至于add,delete,merge等就是字面意思。

 

使用视频教程:http://www.subversion.org.cn/media/all.swf

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值