SVN安装配置管理
一、准备工作
1、获取 Subversion 服务器程序到官方网站(http://subversion.tigris.org/)下载最新的服务器安装程序。目前最新的是1.6.4版本,具体下载地址在:http://subversion.tigris.org/servlets/ProjectDocumentList,注意找for apache 2.2.x 版本的。
2、获取 TortoiseSVN 客户端程序 从官方网站 http://tortoisesvn.net/downloads 获取最新的TortoiseSVN 。TortoiseSVN 是一个客户端程序,用来与 subversion 服务器端通讯。Subversion 自带一个客户端程序 svn.exe ,但 TortoiseSVN 更好操作,提高效率。
二、安装服务器端和客户端
1.首先安装 Subversion 服务器程序,其次安装 TortoiseSVN 客户端程序。(如果你下载的服务器端是个zip版就需要手动设置系统变量),直接解压缩即可,比如我解压到 E:\subversion(还要配环境变量) 。客户端安装文件是个 exe 可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启。
三、建立版本库(Repository)
1.运行Subversion服务器需要首先要建立一个版本库(Repository)。版本库可以看作是服务器上集中存放和管理数据的地方。开始建立版本库。首先建立 E:\svn 空文件夹作为所有版本库的根目录。
可以使用 TortoiseSVN 图形化的完成这一步:
先建立空目录 E:\svn\Repository,注意一定是要空的。然后在 Repository 文件夹上“右键->TortoiseSVN->Create Repository here...”,就创建了一系列文件夹和文件。
或用命令的创建:
svnadmin create E:\svn\Repository[svnadmin create <仓库路径>*在<仓库路径>上创建svn仓库]创建完毕后会在目录下生成若干个文件和文件夹,dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部数据;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号
四、运行独立服务器
1.进入命令行并切换到subversion的bin目录,运行指令svnserve -d -r E:\svn\Repository,(-d可写为--daemon,-r可写为--root 注意:这是临时打开的服务,命令执行后不能关闭窗口),可以建立一个批处理文件并放在windows启动组中便于开机就运行SVN服务,或者在这个地址http://clanlib.org/~mbn/svnservice/下载那个svnservice.exe文件,拷贝到E:\svn\bin目录下,再从命令行下执行:
net start svnservice
或用后台服务的方式可以设置开机自动执行:
这样就可以用net svnservice stop 或者start来启动服务了,也可以在Sevices.msc来启动了
五、配置用户和权限
1.用文本编辑器打开‘E:\svn\Repository\conf’目录,修改svnserve.conf:
*去掉前面的#注释符,注意前面不能有空格(注意:问题就出在这,一定要注意格式去掉注释后要顶格不能有空)
password-db = passwd--密码文件名字,不要改动其值,因为上层目录中有个与之对应的passwd文件
anon-access = none --不允许匿名访问,这个很重要,不然谁都能访问这个代码仓库了
auth-access = write-- 允许提交修改
2.然后修改passwd文件,增加一个帐号:
将:
[users]
# harry = harryssecret
# sally = sallyssecret
增加帐号:
[users]
#harry = harryssecret
#sally = sallyssecret
test = test
*开头#字符去掉,这是设置用户,一行一个,存储格式为“用户名= 密码”
六、初始化导入
1.下面就是将我们的项目导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢失、改错数据时版本库也能帮我们找回数据。
比如,我在D:\root 下有个project文件夹,里面存放的是一个txt文件。在此文件夹上“右键 -> TortoiseSVN -> Import...” ,在弹出对话框的“URL of repository”输入“svn://localhost/Repository/project”。在“Import message”输入“导入整个留言簿”作为注释。
2.点 OK 后要求输入帐号。我们在用户名和密码处都输入test 。完成后project中的内容全部导入到了svn://localhost/Repository/project。我们看到在E:\svn\Repository没有任何变化,连个project文件夹都没有建立,唯一的变化就是E:\svn\Repository容量变大了。实际上我们源project中的内容已经导入Repository版本库了,源project文件夹可以删除了。
七、添加为系统服务
::======================================================================
::功能 : 通过简便快捷的方式安装 Subversion.
::初始化环境 %SVN_HOME%是系统环境变量中配置的SVN服务端安装文件位置
::======================================================================
SET svn_dir=%SVN_HOME%
ECHO *** 安装 Subversion 服务 ***
::======================================================================
::创建服务
::======================================================================
ECHO+++ 创建资源库服务 +++
ECHO 创建系统服务,这需要输入一些信息...
:INPUT_SVC_NAME
SET/P svc_name=请输入服务名 :
::服务名不能为空值
if"%svc_name%"==""(
ECHO 服务名不能为空,请重新输入。
GOTO INPUT_SVC_NAME
)
::查询服务是否存在,通过查找输出是否存在错误,"1060:"是发生错误是时输出的错误代码。
SC QUERY "%svc_name%" | find"1060:">> NUL
IF %errorlevel% ==1(
ECHO 服务 "%svc_name%" 已经存在!请重新输入服务名。
GOTO INPUT_SVC_NAME
)
ECHO.
::输入资源库信息
:INPUT_REPOS
SET/P repos=请输入资源库路径 :
ECHO.
::创建服务
ECHO 您使用以下信息创建 Subversion 服务 :
ECHO 服务名称 : "%svc_name%"
ECHO 资源库路径 : "%repos%"
ECHO 正在创建服务...
SC create %svc_name% binPath="\"%svn_dir%\bin\svnserve.exe\" --service -r \"%repos%\"" depend= Tcpip start= auto| find"1060:">> NUL
ECHO.
IF %errorlevel% ==0GOTO SC_ERROR
ECHO --- 创建服务成功! ---
ECHO.
ECHO.
::======================================================================
::生成操作批处理文件
::======================================================================
ECHO+++ 生成服务操作批处理 +++
ECHO 服务操作批处理文件可以帮助您快速操作服务。
SET bat_delete=DELETE_%svc_name%.BAT
SET bat_start=START_%svc_name%.BAT
SET bat_stop=STOP_%svc_name%.BAT
ECHO 生成删除服务批处理 "%bat_delete%"...
::bat_delete
ECHO@ECHOOFF> %bat_delete%
ECHONET STOP %svc_name%>> %bat_delete%
ECHO SC delete %svc_name%>> %bat_delete%
ECHODEL %bat_start%>> %bat_delete%
ECHODEL %bat_stop%>> %bat_delete%
ECHODEL %bat_delete%>> %bat_delete%
ECHOPAUSE>> %bat_delete%
::bat_start
ECHO 生成运行服务批处理 "%bat_start%"...
ECHO@ECHOOFF> %bat_start%
ECHONETSTART %svc_name%>> %bat_start%
ECHOPAUSE>> %bat_start%
::bat_stop
ECHO 生成停止服务批处理 "%bat_stop%"...
ECHO@ECHOOFF> %bat_stop%
ECHONET STOP %svc_name%>> %bat_stop%
ECHOPAUSE>> %bat_stop%
ECHO.
ECHO --- 生成服务操作批处理成功! ---
ECHO.
ECHO.
::======================================================================
::Finish
::======================================================================
ECHO### 所有操作成功! ###
GOTOEND
::======================================================================
::错误段
::======================================================================
:ENV_ERROR
ECHO --- 设置环境变量失败! ---
GOTOEND
:SC_ERROR
ECHO --- 创建服务失败! ---
GOTOEND
:SC_INV_PORT
ECHO 无效的端口号,请重新输入。
GOTO INPUT_SVC_PORT
:END
PAUSE
用客户端访问 格式:svn:\\服务器IP