一、引言

笔者曾经试图在网上搜索一篇关于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较少的完美软件。(全文完)

SVN搭建简单教程的更多相关文章

  1. 搭建SVN服务器详细教程

    搭建SVN服务器详细教程 本教程会从最基本的下载安装到上传代码,下载代码这条线来详细讲述如何完成SVN服务器的搭建 下载并安装VisualSVN server 下载并安装TortoiseSVN 导入项 ...

  2. Linux搭建SVN服务器详细教程

    前言 本文讲解Linux系统下如何搭建SVN服务器,详细说明各配置项的功能,最终实现可管控多个项目的复杂配置. SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统 ...

  3. Git和Github简单教程

    原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章 ...

  4. svn搭建

    原文:svn搭建 二.Subversion的安装与测试 Subversion的配置方式有很多种,同时也可以配置不同的操作系统之上,本文我讲解的是Subversion 1.5.4 for Apache2 ...

  5. Hudson+Maven+Svn搭建持续集成环境

    Hudson+Maven+Svn搭建持续集成环境 博客分类: 配置管理 mavenSVNTomcat项目管理配置管理 一.所用开发工具 1.    Hudson: Hudson 是一种革命性的开放源码 ...

  6. Git和Github简单教程(收藏)

    原文链接:Git和Github简单教程 目录: 零.Git是什么 一.Git的主要功能:版本控制 二.概览 三.Git for Windows软件安装 四.本地Git的使用 五.Github与Git的 ...

  7. Solr集群搭建详细教程(一)

    一.Solr集群的系统架构 注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478,商业用途请联系本人dijia478@163.com. SolrCloud(solr 云)是So ...

  8. svn搭建服务器--- 绝对好使---杜恩德

    如何创建 SVN 服务器,并搭建自己的 SVN 仓库 听语音 | 浏览:1289 | 更新:2016-09-10 17:45 1 2 3 4 5 6 7 分步阅读 百度经验:jingyan.baidu ...

  9. mongoDB介绍、安装、搭建简单的mongoDB服务器(一)

    相关网站 1. http://www.mongodb.org/ 官网,可以下载安装程序,和doc,和驱动等. 2. http://www.mongoing.com/ 国内官方网站,博客,问题谈论等  ...

随机推荐

  1. SqlServer SET IDENTITY_INSERT ON | OFF

    想要将值插入到自动编号(或者说是标识列,IDENTITY)中去,需要设定 SET IDENTITY_INSERT 示例: 1.首先建立一个有标识列的表: )) 2.尝试在表中做以下操作: , 'gar ...

  2. uva 129 krypton factors ——yhx

     Krypton Factor  You have been employed by the organisers of a Super Krypton Factor Contest in which ...

  3. 代码管理工具 --- git的学习笔记一《git的个人开发》

    重点摘要: 创建了一个文件后首先先通过git add . 添加到暂缓区,然后通过git commit -m "提交的名字" 提交到本地仓库,最后才可能push到远程仓库. 1. 个 ...

  4. 极路由2(极贰)在OpenWrt下定制自己的ss服务

    默认刷入的OpenWrt带的ss, 只有ss-redir服务, 但是在实际使用中, 很多时候还是希望访问直接通过正常网关, 只有少部分访问需要通过ss, 所以希望能配置成为ss-local服务. 在保 ...

  5. Several anatomical structure pics 一些大脑解剖结构图

    Source: Wikipedia

  6. WinRAR5.4

    Winrar是一款优秀的压缩解压工具! 免费版   :http://www.winrar.com.cn/                  ###加载启动广告,支持正版 海阔天空:http://pan ...

  7. SQL 基础语法(一)

    SQL 语法 数据库表 一个数据库通常包含一个或多个表.每个表由一个名字标识(例如"客户"或者"订单").表包含带有数据的记录(行). 下面的例子是一个名为 & ...

  8. zabbix利用api批量添加item,并且批量配置添加graph

    关于zabbix的API见,zabbixAPI 1item批量添加 我是根据我这边的具体情况来做的,本来想在模板里面添加item,但是看了看API不支持,只是支持在host里面添加,所以我先在一个ho ...

  9. root与普通用户的切换

    普通用户切换到root用户:sudo su - root用户切换到普通用户:su henie

  10. Socket编程实践(3) 多连接服务器实现与简单P2P聊天程序例程

    SO_REUSEADDR选项 在上一篇文章的最后我们贴出了一个简单的C/S通信的例程.在该例程序中,使用"Ctrl+c"结束通信后,服务器是无法立即重启的,如果尝试重启服务器,将被 ...