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 ...
随机推荐
- 9.Iptables与Firewalld防火墙
第9章 Iptables与Firewalld防火墙 章节简述: 保障数据的安全性是继保障数据的可用性之后最为重要的一项工作.防火墙作为公网与内网之间的保护屏障,在保障数据的安全性方面起着至关重要的作用 ...
- csu-2018年11月月赛Round2-div1题解
csu-2018年11月月赛Round2-div1题解 A(2191):Wells的积木游戏 Description Wells有一堆N个积木,标号1~N,每个标号只出现一次 由于Wells是手残党, ...
- Leetcode 556.下一个更大元素III
下一个更大元素III 给定一个32位正整数 n,你需要找到最小的32位整数,其与 n 中存在的位数完全相同,并且其值大于n.如果不存在这样的32位整数,则返回-1. 示例 1: 输入: 12 输出: ...
- Pipenv 学习笔记
个人笔记,胡言乱语.并不是什么教学向文章.. 前言 在学习了 Python.Java 后,会发现 Java 有很成熟的项目构建工具,以前是使用 xml 的 Maven,现在又出现了使用 groovy ...
- [oldboy-django][深入 rest framework] restframewok 教程: 分页功能
http://www.django-rest-framework.org/api-guide/pagination/ https://stackoverflow.com/questions/31785 ...
- nyoj 题目19 擅长排列的小明
擅长排列的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明十分聪明,而且十分擅长排列计算.比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想 ...
- phpstrom换行的一个小坑
安装phpstrom后汉化会默认不是左边定格换行,而是会智能换行 苦找了许久了,终于知道在哪设置了,跟大家分享一下,希望不要走同样的坑 不勾选即可
- 事务ACID特性,其中I代表隔离性(Isolation)。
事务ACID特性,其中I代表隔离性(Isolation). 什么是事务的隔离性? 隔离性是指,多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离 ...
- PE
不是projecteuler,我想说的是projecteuclid..似乎是一个有很多数学文献的网站..? PE541似乎是一道很有趣的题目,有一个暴力大概就是首先转化一下模型变成找\(\sum_{x ...
- 【HDOJ5555】Immortality of Frog(状压DP)
题意:给你一个NxN的网格,第N行的每一列都有个青蛙,这些青蛙只会往上走, 上帝会在每个膜中随机等概率放一个长生不老的药, 一共有N个膜,每个膜覆盖一些区间,如果这个区间恰好为N那么就是好膜,否则是坏 ...