基于SVN源码服务器搭建(详细教程分析)

 更新时间:2013年06月04日 10:56:00   作者:  
本篇文章是对SVN源码服务器搭建进行了详细的分析介绍,需要的朋友参考下
一、引言
笔者曾经试图在网上搜索一篇关于SVN源代码服务器搭建方面的中文技术文章,可惜,所找到的,要么是不完整,要么就是对笔者没什么帮助的文章,TortoiseSvn的帮助文档固然强大,但因为是英文,不是很适合来作为入门者使用;毕竟,TortoiseSvn是一个客户端,服务器端的配置也很重要。
一年前,笔者刚刚毕业,初入公司,在进行开发时,由于没有进行软件代码版本管理,导致的结果是
•软件一天一个版本
•Bug日益增加且隐藏很深
•代码无法向前回溯
•几个月前修正过的Bug在几个月后又重新出现
由于最近公司决定架设SVN源代码服务器,来解决以上问题,故笔者经过一段时间的摸索和使用,便有了此文。

二、学习本文先决条件
如果作为读者的你符合以下情况,那么本文可以对你起到一个很大的帮助作用:
•具备基本的软件开发知识
•了解Client/Server模型
•正在被日益更新的软件代码版本所困扰
本文旨在指导读者如何利用现有的软件工具进行软件代码版本管理工作,如果你对软件版本控制与管理,维护与备份较为感兴趣,可以阅读此文来获取一定的知识。

三、安装SVN服务器端软件
首先,你必须下载两款软件包:VisualSVN Server和TortoiseSVN,两者都是开源软件,至于在哪里下载,百度或谷歌之,尽量使用最新版就好,我使用的版本如下:

服务器端:VisualSVN-Server-2.5.5.msi
客户端:TortoiseSVN-1.7.5.22551-win32-svn-1.7.3.msi
 
双击以下图标,打开安装包:

单击“Next”

勾选“I accept...”,然后单击“Next”

选择第一个“安装VisualSVN Server(可视化SVN服务器)”和“Management Console”

Location是你的安装目录,C盘或D盘都可以,Repositories是你的源代码仓库,也就是你SVN帮你管理代码放置的位置,这里我选择放置在D盘根目录下,将“Use secure connection”复选框的勾去掉,然后在Server Port中填写8080(填其他端口号也可以,但是确保该端口号未被占用),在这里不使用安全连接的原因是,它会导致通讯速度减慢(PS:当时在公司配置时使用的secure connection,每次Checkout一次要15秒多的时间,无法忍受),然后单击“Next”:

单击“Install”

等待……

Finish!

单击“Finish”后,会启动VisualSVN Server,可以看到,它的Status是:

VisualSVN Server is running

Server URL is http://motor-109133.hanslaser.com:8080/svn/

至此,服务器端软件安装完毕!

四、SVN服务器配置项目

右键单击“Repositories”,选择“Create New Repository...”

在“Repository Name”下方文本框填入“TestSvn”(作为测试用),将“Create default structure(trunk,branches,tags)”选项勾选上,单击OK

可以看到在Repositories树下面,有一个TestSvn库,这个TestSvn库中有三个文件夹:

branches(分支,修改特殊功能或者新功能的分支代码,可与主干进行合并)tags(标记,设定milestone版本)trunk(主干,存放当前正在编辑的代码工程)

开始新建用户(用户组管理请各位自己研究),右键单击“Users”,选择“Create User...”

在“Create New User”对话框中填写账号密码,如图所示:

可以看到Users文件夹下面有了一个用户:

记得将Repositories仓库的属性修改一下,因为它默认的属性是Everyone Read/Write,意思是任何人都可以对该库中的内容进行读写,现在我们要将其修改成Everyone No Access,然后再自己添加用户,给予用户读或写的能力,右键单击“Repositories”,选择“Properties”:

选中“Everyone”,然后勾选“No Access”:

现在开始为TestSvn添加一个用户,也就是刚刚添加的账号:zhengshuo,右键单击“TestSvn”,选择“Properties...”:

单击“Add...”,选择Users下的zhengshuo,单击OK

这样用户zhengshuo就被添加到TestSvn项目中(即目前只有zhengshuo才有对TestSvn的读写权利):

五、安装SVN客户端软件

双击如下安装包:

单击“Next”

选择“I accept...”,单击“Next”

选择安装目录,单击“Next”:

开始Install:

Wait...

安装完毕!

六、从SVN服务器签出工程代码

在任意一个位置建立一个文件夹TestSvn,比如说D盘,右键单击该文件夹,选择“SVN Checkout...”

填写好“URL of Repository”,格式是http://你电脑的IP地址:8080/svn/TestSvn,端口号是之前设置好的8080,IP地址填写你当前电脑的IP地址,然后单击OK:

 

SVN会提示输入账号密码进行验证,因为zhengshuo这个账号在服务器中已经添加,所以可以用该账号进行登录:

验证成功后,会提示“Checkout Finished!”:

七、向SVN服务器签入工程代码

第一次签出会获得当前项目TestSvn中的目录结构,即branches,tags和trunk:

我们的代码要放在trunk(主干)文件夹中,代码如下:

右键单击TestSvn文件夹,选择“SVN Commit...”

填写好上传理由Message,单击OK

提示“Commit Finished!”

八、后记
本文讲述的内容虽然较为简单,但是,它却给了初学者一个最佳的切入点,让初学者能够在最短的时间内,对SVN源代码服务器的搭建和初步使用有一个通盘的了解。

通过对SVN源码服务器的搭建,也让我明白了软件代码版本管理的重要性,正所谓君子善假于物也,我们作为一个合格的软件工程师,要善于合理利用身边一切可以利用的资源,来优化我们的工作环境,提高工作效率,为公司为自己写出Bug较少的完美软件。

相关文章

  • C++面试基础之static关键字详解

    C++面试基础之static关键字详解

    这篇文章主要给大家介绍了关于C++面试基础之static关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • C++读写配置项的基本操作

    C++读写配置项的基本操作

    这篇文章主要介绍了C++读写配置项的基本操作,帮助大家更好的理解和学习c++,感兴趣的朋友可以了解下
    2021-01-01
  • C 语言环境设置详细讲解

    C 语言环境设置详细讲解

    本文主要介绍C 语言环境设置,在不同的系统平台上,C语言的环境设置不同,这里帮大家整理了Liunx, UNIX,Windows 上安装C语言环境,有开始学习C语言的朋友可以参考下
    2016-08-08
  • 算法详解之分治法具体实现

    算法详解之分治法具体实现

    这篇文章主要介绍了算法详解之分治法具体实现,需要的朋友可以参考下
    2014-02-02
  • C++实现读入二进制数并转换为十进制输出

    C++实现读入二进制数并转换为十进制输出

    本文给大家介绍的是一则使用C++实现读入二进制数并转换为十进制输出的代码,实现起来其实非常简单,C++本身就提供了二进制类库的,大家看代码吧,简单又实用。
    2015-03-03
  • c语言合并两个已排序数组的示例(c语言数组排序)

    c语言合并两个已排序数组的示例(c语言数组排序)

    如何将两个已排序数组合并成一个排序数组,下面我们给出使用c语言合并两个已排序数组的示例,需要的朋友可以参考下
    2014-03-03
  • C语言实现文本文件/二进制文件格式互换

    C语言实现文本文件/二进制文件格式互换

    这篇文章主要为大家详细介绍了C语言实现文本文件和二进制文件格式互换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • 详解C++图搜索算法之双端队列广搜

    详解C++图搜索算法之双端队列广搜

    这篇文章主要为大家介绍一下C++图搜索算法中的双端队列广搜,文中通过例题详细介绍了双端队列广搜的使用方法,感兴趣的可以了解一下
    2022-06-06
  • C语言编程数据结构栈与队列的全面讲解示例教程

    C语言编程数据结构栈与队列的全面讲解示例教程

    本文介绍着重介绍数据结构-栈和队列的知识,由于本文也设计多个动态内存开辟函数,小伙伴们在学习本文之前,一定一定一定要把动态内存开辟相关知识掌握牢固,这样学习起本文才能事半功倍
    2021-10-10
  • C语言深入探索浮点数的使用秘密

    C语言深入探索浮点数的使用秘密

    在C语言中,浮点数是一个很重要的类型,浮点数可以使数据更为精确。浮点数说白了就是带有小数点的数。比如1.6 0.0000 765.2等等,浮点数具体是怎么用的呢,让我们一起来看看
    2022-04-04

最新评论