配置svn服务器
SVN搭建参考手册【详细说明+图片】

SVN搭建参考手册【详细说明+图片】一、SVN 服务器和客户端安装安装服务器程序运行服务端程序VisualSVN-Server-1.6.4.msi,根据提示安装即可,这样我们就有了一套在服务器端运行的环境。
安装客户端程序TortoiseSVN运行TortoiseSVN-1.6.4.16808-win32-svn-1.6.4.msi按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。
安装客户端语言包运行LanguagePack_1.6.4.16808-win32-zh_CN.msi注意:上述服务端和客户端程序均为开源软件,在使用过程中注意两者版本的统一二、SVN 创建版本库多库管理模式SVNROOT为版本库的根目录,wendang为文档管理版本库、sourcecode为为各系统代码管理版本库。
VisualSVN-Server提供了一个可视化的控制台,通过它我们可以方便的完成版本库的创建和权限的分配工作。
1. 启动VisualSVN Server Manager,在VisualSVN Servers上右键选择Properties2. 在弹出的界面上设置版本库的根位置,设置完毕后会重新启动相关服务3. 在VisualSVN Servers上右键选择Creat New repository ,创建新的版本库,并在文本框中输入库名称上图中的CheckBox如果选中,则在库test下面会创建trunk、branches、tags 三个子目录;不选中,则只创建空的版本库test。
(注:VisualSVN Server Manager不支持对目录下文件的创建和删除操作,这项工作需要借助Tortoise SVN来完成)三、SVN 安全配置用户设置1. 启动VisualSVN Server Manager,右键点击界面上的Users文件夹,选择create user2. 在弹出的Users设置界面上添加新的用户和密码用户组设置1. 在VisualSVN Server Manager上右键点击界面上的Groups文件夹,选择create Group2. 在弹出的Gruop设置界面上添加新的组和组成员安全性设置1. 在版本库中选择一个库,右键选择Properties2. 点击上图中的"Add..."按钮,在下图中选择我们刚才添加的用户,点击OK按钮3. 按照下图所示,分别对用户或组进行授权在线修改密码1. 在安装目录(如C:\Program Files\VisualSVN Server\)的bin文件夹下增加alias.so、mod_cgi.so两个文件2. 在安装目录中增加cgi-bin文件夹,其中包含svnpass、svnpass.ini两个文件,修改svnpass.ini中pwdFilePath地址的指向为版包库中密码存放的文件,例如:pwdFilePath=D:\Repositories\htpasswd3. 修改安装目录中conf文件夹中的httpd-custom.conf,增加如下内容:LoadModule alias_module bin/mod_alias.soLoadModule cgi_module bin/mod_cgi.so<IfModule alias_module>ScriptAlias /cgi-bin/ "C:/Program Files/VisualSVN Server/cgi-bin/"</IfModule>4. 修改安装目录中htdocs文件夹的部分内容注意:上述所需文件参见SVN中相关附件5. 用户通过URL访问版本库,在验证通过后就能完成密码的在线修改四、SVN 备份恢复机制出于资源安全性考虑,为了防止由于配置管理服务器硬件或者软件故障,而导致配置库资源丢失且无法恢复的情况发生,需要对配置库资源进行定期的备份。
专题:SVN配置与安装使用

SVN (Subversion) 配置与安装调试
有什么疑问可以提出来
SVN (Subversion) 配置与安装调试
2、SVN 控制器的工作原理和流程 、 通过每个用户提交来的数据生成版本 避免冲突和覆盖, 避免冲突和覆盖,并根据记录用户行为
Байду номын сангаас
提交 用户A 用户 用户B 用户
SVN 服务器端 更新 更新 更新 用户D 用户 用户C 用户
SVN (Subversion) 配置与安装调试
3、如何安装配置服务器端SVN 、如何安装配置服务器端 TortoiseSVN 客户端软件 Subversion 服务端软件
1、创建服务器端库文件位置 、 2、配置库文件的内容在 conf目录下面 authz、passwd、svnserve.conf 、 目录下面 、 、 3、启动 svnserve.exe -d -r D:\svn 、 权限配置 用户配置 常见图标 核心配置
SVN:可以简单理解为一个版本控制器,主要实现多人协作开发文件共享和版本 :可以简单理解为一个版本控制器, 控制的一个过程。 控制的一个过程。 特点: 特点: 1、根据文件修改的次数自动增加版本号以便找回历史文件 、 2、防止多人开发时同时修改一类文件导致文件覆盖或被删除 、 3、及时更新和获取其他开发者的最新数据和文件 、 4、有助于项目开发时的安全,责任细分化 、有助于项目开发时的安全,
服务器VisualSVN-Server_2.1.6安装、配置方法

1.安装服务器版(VisualSVN-Server-2.1.6.msi),下图为本机系统及部分信息,本机做了RAID0+1(装了四块硬盘,其中两块为备份盘,目的是正常用的两块硬盘使用过程中如果突然坏掉,另两块硬盘将保存坏硬盘的数据,同时顶替掉坏硬盘进行工作)。
2.双击打开VisualSVN-Server-2.1.6.msi,点next 后如下图在下面选项打勾,点next,出现下图选择中如如选项,点next 后出现下图上图中,Location:项为程序安装目录,Repositories:后面为项目的保存目录(以后项目就保存在这个目录下了),点后面的Browse…可以修改位置,然后点netxt,,出现下图点击install,程序开始安装,安装过程中如果出现提示,可能是电脑名称为中文,最好提前改为英文。
安装正常情况下出现下图:点Finish,即完成安装,VisualSVN会运行。
出现下图VisualSVN Server的配置和使用方法(转)1.为什么要用VisualSVN Server,而不用Subversion?回答:因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server 为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置Apache,如果是新手,岂不是很头痛?而VisualSVN Serve集成了Subversion 和Apache,省去了以上所有的麻烦。
安装的时候SVN Server已经封装为windws service,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面来配置。
2.为什么不用TFS?回答:因为我们一开始就是用Subversion和TortioseSVN,所以就没有更换其他的软件。
svn服务器缓存设定

在SVN服务器上设置缓存可以提高版本控制系统的性能和响应速度。
以下是一些常见的SVN服务器缓存设置方法:1. 配置Apache服务器缓存:- 如果你使用Apache作为SVN服务器,可以通过修改Apache的配置文件来启用缓存。
打开Apache的配置文件(通常是httpd.conf或apache2.conf),找到和SVN相关的配置项。
- 在<Location>标签内,添加以下指令启用缓存:```SVNCacheRevProps onSVNCacheTextDeltas onSVNCacheFullTexts on```- 保存配置文件并重新启动Apache服务器。
2. 配置代理服务器缓存:- 如果你使用代理服务器(如Nginx)作为SVN服务器的前端,可以配置代理服务器的缓存来提高性能。
- 打开代理服务器的配置文件,找到和SVN相关的配置项。
- 在相关配置项中,设置合适的缓存时间和缓存策略,以满足你的需求。
例如,可以设置缓存时间较长的静态资源,而对于频繁更新的资源则设置较短的缓存时间。
3. 使用SVN本地缓存:- SVN客户端通常会在本地维护一个缓存副本,以提高操作的响应速度。
- 可以通过调整SVN客户端的配置来优化本地缓存设置。
具体方法取决于你使用的SVN客户端工具。
- 例如,可以增加本地缓存的大小限制,以便在版本更新时更多地利用缓存,减少网络传输。
请注意,在进行任何缓存设置之前,建议先进行性能测试和监测,以确保所做的修改不会引发其他问题。
此外,具体的缓存设置方法可能因SVN服务器和配置环境的不同而有所差异,请根据你的实际情况进行相应调整。
当涉及到SVN服务器的缓存设置时,以下是一些更详细的说明:1. Apache服务器缓存配置:- 打开Apache的配置文件,通常是位于`/etc/httpd/conf/httpd.conf`或`/etc/apache2/apache2.conf`等位置。
VisualSVN Server的配置和使用方法

一、VisualSVN Server的配置和使用方法【服务器端】安装好VisualSVN Server后,运行VisualSVN Server Manger,下面是启动界面:好的,下面我来添加一个代码库【Repository】,如下图:按上图所示,创建新的代码库,在下图所示的文本框中输入代码库名称:注意:上图中的CheckBox如果选中,则在代码库StartKit下面会创建trunk、branches、tags 三个子目录;不选中,则只创建空的代码库StartKit。
点击OK按钮,代码库就创建成功了。
创建完代码库后,没有任何内容在里面。
我会在这个教程的第二部分说明如何迁入源代码。
下面,我们开始安全性设置,在左侧的Users上点击右键:输入上面的信息,点击OK,我们就创建一个用户了。
按照上面的过程,分别添加用户Developer1、tester1、manager1,好了,我们开始添加这些用户到我们刚才创建的项目里:点击上图中的"Add..."按钮,在下图中选择我们刚才添加的用户,点击OK按钮:说明:大家可能注意到了下图中的Groups,是的,你也可以先创建组,把用户添加到各个组中,然后对组进行授权,操作比较简单,在此略过。
按照下图所示,分别对用户【或组】进行授权:点击"确定"按钮,上面的用户就具有了访问StartKit代码库的不同权限。
因为用户starter在团队中是新来者,不希望他向代码库中提交新代码,所以他只能读取代码库中的代码,不能提交代码。
tester1是测试人员,不负责代码编写,所以也是只读权限。
而Developer1和manager1是开发人员和项目经理,自然具有读、写的权限。
在实际的项目开发过程中,Developer和tester往往不可能只有一个人,这时候使用组来授权更加方便,这个大家可以自己练习一下。
二、TotoiseSVN的基本使用方法在项目管理实践教程一、工欲善其事,必先利其器【Basic Tools】中,我已经讲解了怎样安装TortoiseSVN。
SVN安装与使用教程总结

SVN安装与使⽤教程总结转载:SVN简介:为什么要使⽤SVN?程序员在编写程序的过程中,每个程序员都会⽣成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本。
Subversion是什么?它是⼀个⾃由/开源的版本控制系统,⼀组⽂件存放在中⼼版本库,记录每⼀次⽂件和⽬录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过⽹络访问它的版本库,从⽽使⽤户在不同的电脑上进⾏操作。
⼀:SVN服务器搭建和使⽤。
1. ⾸先来下载和搭建SVN服务器,下载地址如下: ,进⼊⽹址后,滚动到浏览器最底部看到如下截图:个⼈认为最好⽤VisualSVN server 服务端和 TortoiseSVN客户端搭配使⽤. 点开上⾯的VisualSVN连接,下载VisualSVN server,下载完成后双击安装,如下图:点击Next下⼀步,如下:然后再点击Next项,下⼀步,如下:点击【Next】如下:Location是指VisualSVN Server的安装⽬录,Repositorys是指定你的版本库⽬录.Server Port指定⼀个端⼝,Use secure connection勾⼭表⽰使⽤安全连接,点击Next,进⼊下⼀步,如下图:再点击【Install】,进⼊如下安装图:等待安装完成后,点击【next】,进⼊下⼀步:如下图点击【Finish】即可完成安装。
安装完成后,启动VisualSVN Server Manager,如图:可以在窗⼝的右边看到版本库的⼀些信息,⽐如状态,⽇志,⽤户认证,版本库等.要建⽴版本库,需要右键单击左边窗⼝的Repositores,如下图:在弹出的右键菜单中选择Create New Repository或者新建->Repository:进⼊下⼀步,如下图:点击【下⼀步】,如下图:点击【create】,如下图:点击【Finish】即可完成基本创建。
Windows环境架设SVN服务器

Windows 环境架设SVN服务器硬件设备:PC机软件设备:xp 或者windows2003 ,TortoiseSVN-1.6.14.21012-win32-svn-1.6.16.msi:SVN客户端Setup-Subversion-1.6.16.msi:SVN安装程序SVNService.rar:svn服务命令AnkhSvn-2.1.8420.8.msi部署:1、安装svn服务器端安装Setup-Subversion-1.6.16.msi,我把这个安装在“C:\Program Files\Subversion”目录。
和AnkhSvn-2.1.8420.8.msi(默认安装即可)2、安装TortoiseSVN-1.6.14.21012-win32-svn-1.6.16.msi。
以上两步中的安装选择均选默认。
重启电脑(客户端软件)3、因为这个软件开机就要用,所以对开发者来讲把它安装成一个服务是最好的(这样电脑一启动这个软件的服务器就运行了,要不然你要到命令行模式去手工启动服务)。
下面就来讲述怎么样把它设置成一个服务。
1) 把“SVNService.exe”拷贝到“C:\Program Files\Subversion\bin\”2) 在D盘新建文件夹d:\svn. 进入命令行模式:开始菜单--运行--进入“C:\Program Files\Subversion\bin\”这个目录。
打入命令:svnservice -install -d-r "d:\svn"。
(这一步很重要很重要,以前我就是这一步误解走了很多弯路)。
具体详细介绍见3.3。
把它设为自动启动:开始菜单--控制面板--性能维护--管理工具--服务,进去以后你会在服务列表中看到svnservice这个服务,右击--把它设为自动启动(这样开机的时候这个服务也启动了)3) 这里就是把“d:\svn” 这个目录指定为SVN版本控制的服务目录(网上很多帖子把上面这个命令称作建立仓库是不对的)其实这个目录应该称作仓库所在的目录,假如我有有三个仓库:repository_1,repository_2,repository_3他们的位置应该是:d:\svn\repository_1, d:\svn\repository_2,d:\svn\repository_3。
SVN(Subversion)详解

目录1SVN服务器配置 (1)2权限管理 (2)2.1概念解释 (2)2.2详细步骤 (2)2.3成功案例 (5)3SVN版本冲突解决详解 (6)3.1版本冲突原因: (6)3.2版本冲突现象: (6)3.3版本冲突解决: (7)3.3.1场景: (7)3.3.2解决冲突有三种选择: (10)3.3.3解决步骤如下: (11)3.4如何降低冲突解决的复杂度: (14)4Subversion中如何checkout出单个文件 (15)4.1通过命令行操作 (15)4.2通过TortoiseSVN操作 (15)1SVN服务器配置下载SubVersion,有安装版和解压缩版设置svn_home\bin为path创建资源库,假设资源库为F:\SVNRepositoryRoot\repository,,则要分两步创建,先mkdir d:\svnroot\,这个可以使用操作系统命令创建然后用svn命令,svnadmin create F:\SVNRepositoryRoot\repository配置svn_home\conf\svnserve.conf,启用anon-access = read,并添加anon-access= write,修改配置文件特别要注意:默认没有anon-access= write,默认时anon-access=read下面是# auth-access = write去掉注释符#后,要使得anon-access顶格,即要去掉前面的空格,否则可能报需要option的错误。
当出现'目标机器积极拒绝,无法连接'或svn: Can't connect to host ...时,请依次检查下面各项1,服务器有没有运行,有没有打开相应端口如果服务器是svnserve,检查有没有运行svnserve,有没有打开3690端口如果服务器是apache,检查apahce是否运行,是否打开80端口检查时可以在服务器运行netstat -na看看相应端口是否在LISTEN2,防火墙有没有开放相应端口3,客户端是否可以连接服务器的相应端口使用命令telnet 服务器IP 相应端口如:telnet 192.168.0.1 3690 有效,可测试端口是否打开启动服务,导入导出都是在服务启动后才能使用的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
配置svn服务器
假如你对我们如何配置SVN的服务器,以及它的权限治理如何设置感爱好,欢迎你阅读下面的部分,那个地点仅仅对第一节当中阐述的svn+ssh,且使用密钥对认证的方式进行说明。
期望我们以后有更多的同学能够承担服务器的爱护工作。
那个地点我们假设你差不多比较熟悉Linux上的一些差不多操作,否则的话请去补习一下 ^_^
1、创建独立的svn版本库属主,也确实是前面提到过的svnowner。
我们期望svnowner自己是一个独立的用户,同时也独立成组,如此能够幸免不必要的外人干扰。
以下的操作除非专门说明,均使用svnowner用户进行操作。
2、以svnowner用户的身份创建版本库。
第一使用umask 027的方式设置掩码值,使得之后创建的文件和名目对本组用户只有读权限,组外用户无权限。
假如考虑更严格的权限操纵,能够使用umask 077方式,仅承诺svnowner用户自己访问,拒绝本组、组外用户的任何访问。
接着用svnadmin create
path_for_repository在path_for_repository路径上创建版本库。
从便利和权限一致性的角度,建议把svn、svnserve、svnadmin、svnlook等svn工具改名为real_svnxxx,再创建svn等脚本程序,例如svn脚本能够如此编写:
#!/bin/bash
umask 027
/usr/bin/real_svn “$@”
3、创建SSH公钥存放文件。
在svnowner用户名目下创建.ssh名目,并在其下创建authorized_keys文件,名目和文件的都应当仅仅是本用户可读写的。
将各用户发送给你的公钥添加到authorized_keys文件当中,注意:一行一个公钥,并在公钥前增加option字段,例如:
command="/home/svnowner/svnserve -t -r path_for_repository –tunnel-user= svnuser1", no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty
ssh-rsa .......(RSA Key here)er1
上例当中,用户user1使用该密钥对认证之后将会执行/home/svnowner下的svnserve,明显这应当是一个包含设置umask的脚本,同时以
path_for_repository 作为版本库的根,svnserve运行于tunnel模式下,使用的svn用户名是svnuser1。
再次提醒大伙儿的是以上内容需要在
authorized_keys里面一行内写完。
4、现在能够在版本库里面设置具体的svnuser的权限了。
进入之前所创建的path_for_repository名目,在其中有conf名目,是负责配置版本库的设置的。
找到svnserve.conf文件,在其中去掉注释并修改的行有:
anon-access = none
auth-access = write
authz-db = authz
realm = XXX Group Repository
说明匿名用户无访问权限,认证用户能够具备写权限,版本库标识为“XXX Group Repository”(此项可选),权限认证数据库是authz文件。
因此再修改authz文件,示例:
[groups]
manager = svnuser1
members = svnuser2, svnuser3
[/]
@manager = rw
* = r
[/src]
@members = r
@manager = rw
* =
[/src/arm7]
svnuser2 = rw
@manager = rw
svnuser3 = r
* =
[/src/arm9]
svnuser3 = rw
@manager = rw
svnuser2 = r
* =
[/shared]
@members = rw
以上示例的目的是将所有的名目置于manager可读写的方式,members用户能够对src名目具有可读权限,svnuser2和svnuser3分别对src/下的ARM7、ARM9名目具有读写权限,三个用户均能够对/shared名目进行读写。
匿名用户(其他用户)只能对/shared名目进行读操作。
注意:名目路径均以
path_for_repository作为根名目,这一点需要牢记。
SVN 的一个明显的优点是能够针对单个名目具备独立的操纵权限,这是比cvs更灵活的方面。
同时,这也专门适宜在团队如此的大范畴内推广、且具有可控保密措施的实施方案。
更详细的一个权限示例建议大伙儿参考由“郑新星
<zhengxinxing@gmail >”所写的《Subversion之路——实现精细的名目访问权限操纵》。
至此,Subversion服务器的搭建工作完毕,治理员的后续爱护工作包括同意组内用户密钥对的更换、删除,为Subversion作定期备份等等。
本文也暂告一段落
独立运行的Subversion权限设置专门简单,第一打开snvserve.conf,去掉下面一行的注释
authz-db = authz
然后打开同一名目下的authz那个文件,那个文件便是整个权限操纵的核心,先来看一个例子:
[groups]
dev-group = liudong,xfliang
design-group = newidea
[/]
@dev-group = rw
@design-group = r
* =
[/doc]
@design-group = rw
[/webapp]
@design-group = rw
接下来我给大伙儿说明一下那个文件,相信就能够明白Subversion如何来做权限操纵的了。
第一我定义了两个组,一个开发组(dev-group),一个设计组(design-group),接下来我让dev-group对整个名目有读写的权限,而design-group只有读权限。
然而接下来的两个子名目design-group就有读写权限,也确实是说设计组能够读取整个项目,但只能修改doc以及webapp这两个子名目。
*= 这行表示其他人不能读写。
因此也能够直截了当指定某个用户,例如我想让liudong那个用户能够读写webapp名目,那设置如下:
[/webapp]
@design-group = rw
liudong = rw
另外有一点注意的是,修改那个文件不需要重新启动svn服务,这点太棒了。
下面是详细的说明Subversion自带的authz样例中的注释
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to a
### single user, to a group of users defined in a special [groups]
### section, or to anyone using the '*' wildcard. Each definition can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').
svn权限设置小结及“无权打开根进行编辑操作”的解决
假如不承诺匿名用户访问,设置
在svnserve.conf中进行了如此的设置:
anon-access = none
auth-access = write
假如,anon-access = read,需要在在authz文件中加上:
[/]
* = r
否则在使用SVN进行Checkout时显现错误提示:无权打开根进行编辑操作。
1. svnserve支持面向名目的访问操纵了;
2. 权限具备继承性,因此需要用"* = "的形式来禁止未授权的用户访问特定子名目;
3. svn 1.3.2及以后的版本承诺对子名目进行操作而无需父名目的读权限;
4. 假如是中文名目的话,authz必须以utf-8的格式储存,且不能带BOM,而windows 自带的记事本按utf-8储存的文件则会加上BOM,因此,假如你以utf-8格式储存好后,提交代码时,svn报"section header expected"的错时,则多半是带BOM的。
因此现在专门多编辑器都能专门方便的转换了,如ultraedit的储存为U8-DOS,editplus储存为utf-8,以及开源的Notepad++的格式转换中的“转换为utf-8码(无BOM)”等都能够完成那个工作。