SVN 服务器安装和配置

   单位在服务器上安装了SVN,方便客户端从服务器上下载、更新代码。要求配置权限才可以进行下载、更新。首先,目前安装的是SVNSERVER(访问地址类似于svn://192.168.80.18/repos/),而不是与Apache配合使用的形式(访问地址类似于 http://192.168.80.18:8077/repos/), 以下只对前者做了说明

        以前单位也对SVN服务器端的conf目录下的authz和passwd文件进行过编辑,从而控制版本库使用者的权限,但是其具体原理并不清晰,通过下文的学习,通透了很多,下文中红色部分为本人的注解,谢谢阅读,欢迎讨论:

----------------------------------------------------------------------------------

搭建svn服务的方法步骤问题,主要有七个部分 。下面是具体的步骤介绍。

一、准备工作

1、获取Subversion服务器程序
到官方网站(http://s version.tigris.org/)下载最新的服务器安装程序( 文件名为subversion)。目前最新的是1.5版本,具体下载地址 在:http://s version.tigris.org/servlets /ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91

2、获取TortoiseSVN客户端程序
从官方网站http://tortoisesvn.net/downloads获取最新的TortoiseSVN。TortoiseSVN是一个客户端程 序,用来与Subversion服务器端通讯。Subversion自带一个客户端程序svn.exe,但TortoiseSVN更好操作,提高效率。


二、安装服务器端和客户端 

搭建svn服务第二步要安装服务器端和客户端。安装Subversion(以下简称SVN)的服务器端和客户端。下载下来的服务器端是个zip压缩包,直接解压缩即可,比如我解压到E:\Subversion。客户端安装文件是个exe可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启。

三、建立版本库(Repository) 

运行Subversion服务器需要首先要建立一个版本库(Repository)。版本库可以看作是服务器上集中存放和管理数据的地方。开始建立版本 库。首先建立e:\svn空文件夹作为所有版本库的根目录。然后,进入命令行并切换到Subversion的bin目录。输入如下命 令:svnadmincreateE:\svn\repos1此命令在E:\svn下建立一个版本库repos1。repos1下面会自动生成一些文件夹和文件。我们也可以使用TortoiseSVN图形化的完成这一步:先建立空目录E:\svn\repos1,注意一定是要空的。然后在repos1文件夹上“右键->TortoiseSVN->CreateRepositoryhere...”,然后可以选择版本库模式,这里使用默认的 FSFS即可,然后就创建了一系列文件夹和文件( 其中就有在以前单位维护过的conf目录和该目录下的authz、passwd文件),同命令行建立的一样。(目前在客户端下载服务器上文件的地址为)

四、运行独立服务器

搭建svn服务过程中要运行独立服务器。此时Subversion服务还没有开始,只是通过它的命令建立了版本库。继续在刚才的命令窗口输入:svnserve.exe--daemon

svnserve将会在端口3690等待请求,--daemon(两个短横线)选项告诉svnserve以守护进程方式运行,这样在手动终止之前不会退出。注意不要关闭命令行窗口,关闭窗口会把svnserve停止。为了验证svnserve正常工作,使用TortoiseSVN->Repo- browser来查看版本库。在弹出的URL对话框中输入:svn://localhost/svn/repos1
点OK按钮后就可以看见repos1版本库的目录树结构了,只不过这时repos1是个空库。你也可以使用--root选项设置根位置来限制服务器的访问目录,从而增加安全性和节约输入svnserveURL的时间:svnserve.exe--daemon--rootdrive:\path\to \repository以前面的测试作为例,svnserve将会运行为:svnserve.exe--daemon--roote:\svn然后 TortoiseSVN中的版本库浏览器URL缩减为:svn://localhost/repos1


五、配置用户和权限( 以前单位对权限的配置,就是按这么来的) 

用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf: 将:#password-db=passwd改为:password-db=passwd

即去掉前面的#注释符(使语句起作用),注意前面不能有空格。然后修改同目录的passwd文件,增加一个帐号:将:
[users]
#harry=harryssecret
#sally=sallyssecret
增加帐号:
[users]
#harry=harryssecret
#sally=sallyssecret
test=test


六、初始化导入 

下面就是搭建svn服务时 将我们的数据(项目)导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢失、改错数据时版本库也能帮我们找回数据。

比如,我在d:\wwwroot下有个gstbook文件夹,里面存放的是我编写的留言簿程序。在此文件夹上“右键 ->TortoiseSVN->Import...”,在弹出对话框的“URLofrepository”输入 “svn://localhost/repos1/gstbook”。在“Importmessage”输入“导入整个留言簿”作为注释。
点OK后要求输入帐号。我们在用户名和密码处都输入test(正是上面在passwd文件中添加的用户账号)。完成后gstbook中的内容全部导入到了svn://localhost/svn /repos1/gstbook。
我们看到在e:\svn\repos1没有任何变化,连个gstbook文件夹都没有建立,唯一的变化就是e:\svn\repos1容量变大了。实际上我们源gstbook中的内容已经导入repos1版本库了,源gstbook文件夹可以删除了。需要注意的是,这一步操作可以完全在另一台安装了TortoiseSVN的客户机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是 “svn://133.96.121.22”。


七、基本操作流程

1、取出(checkout)

取出版本库到一个工作拷贝:
来到任意空目录下,比如在f分区建立一个空文件夹f:\work。“右键->SVNCheckout”。在“URLofrepository”中输 入“svn://localhost/svn/repos1/gstbook”,这样我们就得到了一份gstbook中内容的工作拷贝。
2、存入(checkin)/提交(commit)
在工作拷贝中作出修改并提交:
在gstbook工作拷贝中随便打开一个文件,作出修改,然后“右键->SVNCommit...”。这样我们就把修改提交到了版本库,版本库 根据情况存储我们提交的数据。
在修改过的文件上“右键->TortoiseSVN->ShowLog”,可以看到对这个文件所有的提交。在不同的revision条目上 “右键->Comparewithworkingcopy”,我们可以比较工作拷贝的文件和所选revision版本的区别。本节介绍搭建SVN服 务完毕,请关注本节其他相关报道。

 

八、补充说明

1、svn服务器端只能装在c盘下 svnserve.exe --daemon 这个命令才能使用,版本库也必须放在c盘下svn://localhost 对应的是c盘直接目录

如果你创建的文件夹目录为 c:/svnlib/weibo。那么import的地址为svn://localhost/svnlib/weibo


2、svn配置结束,这是最简单的步骤,已经可以用了,然后把svn整合到系统服务,以后就不用一直开着命令窗口了。把以下内容粘贴到文本文件,然后重命名文件为:*.bat执行就好了,
sc create svnserver binpath= "C:\Program Files\S version\bin\svnserve.exe --service --root F:\svn" displayname= "svnserver" depend= tcpip start= auto obj= "NT AUTHORITY\NetworkService"
其中C:\Program Files\S version\bin\svnserve.exe 为svn的路径
F:\svn 为版本库的目录
displayname= "svnserver" 为设置服务的名字
--root 是设置根目录 比如:原来你访问为:svn://localhost/svn
设置--root F:\svn之后缩写为svn://localhost 这个一定要注意,否则Error: URL 'svn://localhost/svn'doesn't exist

注意:以上bat文件中的内容不要自动换行,就写在一行里,换行后就可能报错"windows 找不到文件'auto' "

 

九、使用帮助

 

1.文件夹A点击右键->TortoiseSVN->import到文件夹B时,报错如下,原因:文件夹B不是一个版本库

2..文件夹A点击右键->TortoiseSVN->import到版本库B时,报错如下,原因:版本库B中的conf目录下svnserve.conf文件中,未将# password-db = passwd的注释去掉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值