局域网搭建SVN服务器

局域网搭建SVN服务器

服务器端:windows XP WAMP5 1.7.4 Subversion 1.6.16 TortoiseSVN 1.6.4 (32位)

IP:192.168.1.99

客户机端:windows 7 TortoiseSVN 1.6.4 (64位) IP:192.168.1.102

Windows下SVN的安装与配置

STEP 1:下载和安装

首先在Subversion的官方网站去下载Setup-Subversion-1.6.16.msi安装包,这里使用的是1.6.16,也可以安装1.7版本。下载后点击安装。安装目录:D:/Program Files/Subversion

下载TortoiseSVN进行本地安装,我安装的是TortoiseSVN 1.6.4,这是一个将SVN集成到windows shell中的GUI管理工具,推荐使用。

STEP 2:创建储存库

安装完TortoiseSVN后提示要重启机器,其实启不启都可以正常使用了,首先创建SVN储存库(repository),可以选择命令行方式或者通过TortoiseSVN插件进行GUI操作,命令行运行如下:

svnadmin create E:\svn\haike221

image

E:\svn\haike221就是我指定的储存库目录,如果用GUI方式,可以在这个目录下点击右键选择[TotoiseSVN]->[Create repository here...]进行创建,版本库模式指定为默认的即可。

image

repository创建完毕后会在目录下生成若干个文件和文件夹,db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录, 用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号;conf 目录是存放配置文件的,访问权限、用户信息等等

STEP 3:配置

打开/conf/目录,打开svnserve.conf找到一下两句:

# [general]

# password-db = passwd

去之每行开头的#,其中第二行是指定身份验证的文件名,即passwd文件

同样打开passwd文件,将

# [users]

# harry = harryssecret

# sally = sallyssecret

image

这几行的开头#字符去掉,这是设置用户,一行一个,存储格式为“用户名 = 密码”,如可插入一行:admin = admin888,即为系统添加一个用户名为admin,密码为admin888的用户

STEP 4:运行SVN服务

在命令行执行

svnserve --daemon --root E:\svn\haike221

或者

svnserve -d -r E:\svn\haike221

服务启动,--daemon可简写为-d,--root可简写为-r,可以建立一个批处理文件并放在windows启动组中便于开机就运行SVN服务,或者下载个svnservice.exe文件,拷贝到D:\Program Files\Subversion\bin目录下,再从命令行下执行:

svnservice -install --daemon --root "E:\svn "

sc config svnservice start= auto

net start svnservice

image
image

此文件会将SVN变成windows系统的一个服务,并默认为自启动,注意:执行第三句时确保前面以命令行方式运行的SVN服务已经停止,如果没停止可在其窗口中按Ctrl+C中止运行。

STEP 5:创建项目版本树

确定SVN服务(命令行或windows服务)运行后,在你需要导入储存库的目录下单击右键选择[TortoiseSVN]-> [Import...],在弹开的窗口的URL框中输入 "svn://192.168.1.99/haike221" 点击 "OK" 执行导入,如果没有报错,数据就全部加入SVN储存库目录树上了。用命令行也可以完成这些操作,这需要你在系统变量中新建一个“SVN_EDITOR”的系统变量,变量值为本地的一个文本编辑器执行文件路径,一般指到windows的记事本上就行了 "c:\windows\notepad.exe",然后新开一个CMD窗口,执行

svn mkdir svn://localhost/myproject

随即关闭记事本打开的log文件窗口后按"c"键继续后生成项目树。一般情况,我们在创建文件根路径后应该在创建三个目录:branches、tags、trunk,这三个目录是Subversion需要的三个目录。对于check out、commit、update等操作可以通过svn命令行方式执行,也可以用TortoiseSVN的windows菜单完成,非常简单咯。

配置SVN hook

SETP 1:文件解释:

在SVN库的hook目录下存放着大量的临时文件。分别对应不同的事件:

start-commit – 提交开始时触发,可以用来做权限检查

pre-commit – 提交事务之后正式提交之前触发,经常用来检查日志信息。

post-commit – 提交成功之后触发.可以用来发送邮件通知,备份版本库等。

pre-revprop-change – 版本库中的某个属性发生改变前,可以用来做权限检查

post-revprop-change – 版本库中的某个属性发生改变后,可以用来发送邮件通知或记录改变的属性.

pre-lock – 锁定文件前发生,可以用来做权限检查

post-lock – 锁定文件后发生,可以用来发送邮件通知或记录锁定的文件

pre-unlock – 解除锁定文件前发生,可以用来做权限检查

post-unlock – 解除锁定文件后发生,可以用来发送邮件通知或记录解除锁定的文件

在这里,我们需要处理的是post-commit事件,也就是说需要在文件提交成功后通知网站更新数据。

image

SETP 2:编写post_commit.bat文件

@echo off

SET SVN="D:/Program Files/Subversion/bin/svn.exe"

SET DIR="D:/wamp/www/haike221/"

call %SVN% update %DIR% --username admin --password admin888

image

SETP 3:重启SVNService服务

image

点击重启动。

SETP 4:SVN

image

image

image

image

image

image

image

image

image

Xp下的 www\haike221

image

image