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较少的完美软件。(全文完)
转自:http://blog.csdn.net/zs8861/article/details/7879594
SVN源码服务器搭建-详细教程的更多相关文章
- 将github上的项目源码导入eclipse详细教程
将github上的项目源码导入eclipse详细教程 学习了: http://blog.csdn.net/itbiggod/article/details/78462720
- Solr集群搭建详细教程(一)
一.Solr集群的系统架构 注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478,商业用途请联系本人dijia478@163.com. SolrCloud(solr 云)是So ...
- Solr集群搭建详细教程(二)
注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478,商业用途请联系本人dijia478@163.com. 之前步骤:Solr集群搭建详细教程(一) 三.solr集群搭建 注意 ...
- Solr服务在Linux上的搭建详细教程
一.系统环境 注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478即可,商业用途请联系本人dijia478@163.com. CentOS-6.7-i386-bin-DVD1 ...
- jenkins svn源码管理小记
之前对Jenkins管理SVN源码的逻辑不太清楚,简单研究了一下.对于一般的开发通常会有以下三个环境: 1.svn服务器 2.Jenkins服务器 3.开发服务器(部署测试版web应用或者其他应用) ...
- Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)(转载)
win7(win10也适用)系统安装GPU/CPU版tensorflow Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程) 目录 2.配置 ...
- 区块链轻松上手:原理、源码、搭建与应用pdf电子版下载
区块链轻松上手:原理.源码.搭建与应用pdf电子版下载 链接:https://pan.baidu.com/s/1rKF4U9wq612RMIChs0zv8w提取码:hquz <区块链轻松上手:原 ...
- Android最新源码4.3下载-教程 2013-11
Android最新源码4.3下载-教程 有的下载会出现问题: 需要 修改manifest.xml中的fetch: "git://Android.git.linaro.org/" ...
- [原创]K8_Delphi源码免杀系列教程
[原创]K8_Delphi源码免杀系列教程[2014] 虽是2014年的,但免杀思路方法并未过时 比如函数动态调用\代码注释法等至今依然有效 链接:https://pan.baidu.com/s/1H ...
随机推荐
- jmeter快捷键
快捷键 功能 备注 Ctrl + C 复制 可复制组件 Ctrl + V 粘贴 可粘贴组件 Ctrl + Shift + C 复制粘贴当前组件到下一行 Ctrl + R 运行测试计划 Ctrl ...
- docker exec小脚本
经常要使用docker exec -it containerID bash 进入docker内部进行一些操作,干脆把它写成shell脚本节省时间. # 查看需要操作的容器id $ docker ps ...
- redis linux 集群
redis集群:官方教程 步骤: 1.安装redis 2.修改配置文件redis.conf(集群所需基础配置) port 7000 cluster-enabled yes cluster-config ...
- outlook同步异常
新装的系统,备份了outlook,还原后发现,outlook还在不停的同步服务端邮件,设置规则,禁止接收今天之前的邮件,但是outloock还是在同步,只是不接收而已,这样导致了莫名其妙的异常错误,o ...
- unity中的main方法
由于方法命名的原因,无意之间把一个方法命名为了Main,然后把这个方放到了Start方法中去执行,结果运行后发现这个方法竟然执行了两次 情况如下图: -------------- 检查代码,发现脚本并 ...
- 【bzoj2179】FFT快速傅立叶 FFT
题目描述 给出两个n位10进制整数x和y,你需要计算x*y. 输入 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数为n的正整数y. 输出 输出一行,即x*y的结果. 样例 ...
- 【Luogu】P2824排序(二分答案+线段树排序)
题目链接 震惊!两个线段树和一个线段树竟是50分的差距! 本题可以使用二分答案,二分那个位置上最后是什么数.怎么验证呢? 把原序列改变,大于等于mid的全部变成1,小于mid的全部变成0,之后线段树排 ...
- ES6箭头函数及模版字符串
var f = v => v; 等同于: var f = function(v) { return v; }; 箭头函数可以与变量解构结合使用: const full = ({ first, l ...
- 【05】Vue 之 实例详解与生命周期
Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成.编译.挂着. ...
- 解决当打开Unity时 提示项目已经打开,而自己之前并没有打开过(可能之前异常关闭)的问题
当打开Unity时 提示项目已经打开,而自己之前并没有打开过(可能之前异常关闭) 发生这种情况时 打开项目目录中的 Temp文件夹,可以找到 一个 UnityLockfile 文件 将这个文件删除就可 ...