Subversion 是优秀的版本控制工具,不仅可以管理程序源代码,也可以应用于其他协作管理数据的工作, 这里就介绍VisualSVN Server 服务器端的搭建以及 TortoiseSVN 客户端的使用。
一、下载所需的软件包
现在Subversion已经迁移到Apache网站上了,地址:http://subversion.apache.org/packages.html
我们看到windows操作系统的二进制文件有5种,如图所示:
这里,我们将采用VisualSVN Server作为服务端,TortoiseSVN客户端搭配使用。
1、下载VisualSVN Server
下载地址:http://www.visualsvn.com/downloads/
2、下载TortoiseSVN 以及中文语言包(可选)
下载地址:http://tortoisesvn.net/downloads.html
下载完成后,应该有这些安装包:
二、安装VisualSVN Server服务端
1、安装
选择组件:
指定安装目录以及版本库目录:
Location:指定VisualSVN Server的安装目录
Repositorys: 指的是版本库目录,这里最好换为其他盘符
Server Port: https端口,默认443
然后,一路向下Next,即可。
2、使用VisualSVN Server建立版本库
首先,在开始菜单中,打开VisualSVN Server Manager, 如图
右边的窗口中可以看到VisualSVN Server的信息,比如运行状态,日志(access logging, and operational logging are available in VisualSVN Server Enterprise Edition only),版本库等。右键左边窗口的Repositories, Users, Groups可以分别新建版本库,用户,组。
2.1 新建版本库
右键Repositories -> Create New Repository:
下面指定Repository的访问权限:
然后,这里给我们一个总结信息,请复制URL地址,以备后用。
2.2 创建用户
在VisualSVN Server Manager窗口的左侧右键单击Users, 选择Create User或者新建->User , 在弹出的对话框中填写User name和Password, 然后点击OK
2.3 创建用户组
单独为每个用户分配权限,如果用户不多,还可以这样做,如果用户太多这样做就太麻烦了,对此,我们可以新建一个组,然后给这个组分配相应的权限,然后把用户添加到组中即可。
在VisualSVN Server Manager窗口的左侧右键单击Groups , 选择Create Group或者新建->Group, 在弹出的对话框中填写Group name, 然后点击Add按钮,在弹出的窗口中选择属于这个组的成员,然后点击 OK。
我们看到已经创建成功,如果以后还需要添加成员, 那么我们右键相应的组名,Edit即可。
2.4 为用户或组设定权限
在新创建的版本库上 MyRepos上单击右键, 选择属性,如图:
在弹出的对话框中,选择Security选项卡,点击Add按钮就可以添加用户或组,Remove就能删除用户或组,然后选中某个用户或组,再选择Permissions中的某种权限,即可。一目了然,很简单。
OK,SVN服务器端的配置基本就是这些。
三、安装TortoiseSVN客户端程序
1、安装
Windows XP / Windows server 2003 If you're installing TortoiseSVN 1.8 on Windows XP SP3, you must have the latest msi installer installed. You can get that installer from Microsoft:
Windows Installer 4.5 Redistributable
注意,对于win xp或2003系统,需要安装最新的msi installer,否则将报错:
我们下载补丁程序,安装后,继续安装 TortoiseSVN, 安装过程非常简单,一路Next就可以了。安装完成后,鼠标右键就能看到右键菜单中的SVN,如图:
2、导入项目
首先找到项目的目录,在项目文件夹上鼠标右键,找到SVN菜单,选择import
然后弹出一个导入选项对话框,输入版本库URL,以及一些说明信息,然后点击确定,所选中的项目就会被导入到版本库中(远程SVN服务器上)。注意,导入必须得有相应的读写权限才可以的。
3、导出项目
在你磁盘的适当的位置,创建一个空目录,然后点击右键,选择SNV Checkout...
然后就会弹出一个 Checkout 对话框,输入版本库的URL,以及本地工作目录,注意选择Checkout Depth,有几种方式
点击OK, 就会弹出一个用户验证的对话框,输入用户名和密码即可。
4、提交修改
在你做了某些修改之后,你可以在项目文件夹下点击右键或者你修改的文件名点击右键,选择SVN Commit...,这两者的区别在于,第一个可以一次提交你在此文件夹下所做的所有文件的修改,而第二个只是提交你所选择的单个文件。
点击 Commit之后,会弹出一个输入更改日志的对话框,输入你对其作出的哪些修改,然后点击OK,就会向SVN Server提交修改。
5、添加文件 或者 重命名文件
在本地的项目文件夹新创建一个文件,这个新建的文件会显示为没有版本控制的状态。这个时候,你需要告知SVN你的操作:
加入以后,新建的文件图标会发生改变,不过此时,并没有上传到SVN服务器端。然后我们进行提交,即可
6、删除文件
删除文件,然后 Commit 提交,版本库中的相应文件即被删除掉
7、强制写注释
为了以后你能更清晰的看到你所做的每一次更改记录,所以每次提交的时候应该清楚的写上注释信息,而且尽量详细。
第一种方式:在客户端设置(每个客户端都可以更改,只能革命靠自觉)
使用客户端工具:TortoiseSVN
在工作副本目录上,鼠标右键,TortoiseSVN ,选Properties,点 New ,再出现的下拉条中选 Log sizes
然后设定提交日志的最小字符数和锁定日志的最小字符数为20,提交文本框中显示边线的字符位置设置为100,并且勾选递归应用到所有子目录。
第二种方式:在服务器端配置
在版本库的 hooks 目录下编写脚本(其实就是批处理文件)文件:pre-commit.bat
内容为:
@echo off setlocal set REPOS=%1 set TXN=%2 rem check that logmessage contains at least 10 characters "D:\Program Files\VisualSVN Server\bin\svnlook" log "%REPOS%" -t "%TXN%" | findstr ".........." > nul if %errorlevel% gtr 0 goto err exit 0 :err echo 提交必须写10个字以上的日志!>&2 exit 1
想修改限制长度只需要增加或减少 findstr ".............................." 中点的数量。
总结:两种方法都可以,推荐用第二种方法,这才能起到强制的作用。第一种办法谁都可以改,强制不了,只能靠自觉。
注意:" D:\Program Files\VisualSVN Server\bin/svnlook "根据自己实际的安装路径,找svn的svnlook.exe文件的位置,使用绝对路径。
修改完重启SVN服务
8、其他功能
网页浏览:你可以使用该地址https://dcqtech-ee79b56.dcqtech1.com.cn/svn/MyRepos/ 在网页上浏览项目,同样需要和前面一样的密码。
SVN Update:与服务器版本对比,进行更新
Revert:取消上一次的操作(只针对客户端,服务端不做改动)
Add:增加新目录或新文件至项目
Revision Graph:版本示意图
Show log:查看版本日志及不同版本间相互比较
Check for modifications:同服务器上的项目版本进行比较,并可做相应的修改。