SVN入门及配置使用.docx
- 文档编号:28858282
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:14
- 大小:24.65KB
SVN入门及配置使用.docx
《SVN入门及配置使用.docx》由会员分享,可在线阅读,更多相关《SVN入门及配置使用.docx(14页珍藏版)》请在冰豆网上搜索。
SVN入门及配置使用
SVN服务器端配置
1、到svn官方网站http:
//subversion.trigris.org/下载服务器安装包svn-win32-1.6.1.zip,将该压缩包解压到D:
\subversion目录下,出现D:
\subversion\bin。
建立D:
\svn,在命令行该目录(D:
\subversion\bin\)下输入svnadmincreateD:
/svn/repos1,如果创建成功,D:
\svn下将会多一个repos1目录。
2、让svnservice服务随Windows系统一起启动,在命令行下输入:
sccreatesvnservicebinPath="\"D:
\subversion\bin\svnserve.exe\"--service-rD:
\svn"start=auto
3、权限配置:
在进行权限配置前,所有的用户都能进行任何操作,在很多情况下是不允许的。
在创建仓库时,仓库目录(如:
D:
\svn\repos1)下都会生成好几个文件夹,其中conf里面存储的是配置信息,包括三个文件:
authz:
访问权限配置
passwd:
用户名和密码配置
svnserve.conf:
基本配置信息
⑴先配置svnserve.conf,将里面几项配置前的注释去掉,最后的内容如下:
[general]
#anon-access=read
#auth-access=write
password-db=passwd
authz-db=authz
这些参数的含义文件里都有详细说明,其中,anon-access和auth-access分别是对匿名用户以及认证用户的访问控制,password-db指明用户密码文件路径,authz-db指明权限配置文件路径。
另外还有一个参数realm用于指明仓库所属的认证域,默认情况下每个仓库位于不同的域(每个仓库有一个唯一的uuid),因此我们可以不设置该项,除非多个仓库需要共用同一份passwd配置。
⑵passwd文件的配置很简单,格式如下(等号前面为用户名,后面为密码):
[users]
#harry=123
#sally=123
sunxiaoyong=11111111[A1]
⑶authz则可以创建用户组并精确配置某个用户或用户组对某个文件或目录的访问权限,下面是一个例子:
[groups]
#harry_and_sally=harry,sally
[/]
sunxiaoyong=rw
*=r[A2]
#[/project1]
#*=
#harry=rw
#sally=r
#[/project1/foo]
#sally=
#[/project2]
#@harry_and_sally=rw
#guest=r
文件内容其实很简单易懂,groups用于定义用户组,后面便是对资源的具体访问控制,/表示仓库根目录,*表示所有用户,用户组前面需加上@符号,r表示可读,w表示可写,等号右边为空则表示没有权限。
注意对于目录结构,当用户访问某个资源时,SVN会先看有没有直接针对该资源的访问控制,如果没有找到,则会继承上一级目录的访问权限,如此递推。
补充再提一点,当我们有多个仓库时,我们会发现这些仓库的用户帐号在大多数情况下都是相同的,因此,我们可以将passwd文件放到公共的地方,然后将所有仓库的password-db配置都指向该文件。
相应的,authz-db也可以共用一个文件,不过需要在配置具体的访问控制时指明所属的仓库,如下:
[/]
*=r
[repos1:
/project1]
*=r
harry=rw
[repos2:
/project1]
*=r
sally=rw
上述配置表明,所有人对所有仓库的根目录都有读权限,但只有harry对仓库repos1里的project1有读写权限,只有sally对仓库repos2里的project1有读写权限。
本文来自CSDN博客,转载请标明出处:
SVN入门及配置使用
SVN,即Subversion,是一个自由开源的版本控制系统,可以将数据恢复到早期版本,或者检查数据修改的历史,这些数据可以是源代码,也可以是其他类型的文件。
在SVN出现之前,CVS是开源世界版本控制工具的事实标准,然而CVS存在一些固有的缺陷,并且修复这些缺陷需要耗费很大的精力,因此,SVN的发起者BrianBehlendorf和CollabNet决定重新编写一个版本控制系统,保留CVS的基本思想,但要修正其中错误和不合理的特性。
于是,SVN作为CVS的继任者出现了。
SVN的设计者们力图通过两方面的努力赢得CVS用户的青睐:
保持开源系统的设计以及界面风格与CVS尽可能类似,同时尽力弥补CVS许多显著的缺陷。
这些努力的结果使得从CVS迁移到SVN不需要作出重大的变革,因此越来越多的人选择了SVN。
http:
//svnbook.red-
目录
一、客户端的使用
1.1Linux系统下一般使用(Ubuntu)
1.2Windows系统下一般使用
1.3Linux下使用SVN+ssh认证(未找到相关资料@_@)
1.4Windows下使用SVN+ssh认证
二、服务器端的配置
2.1Linux下的svnserve配置
2.2Windows下的svnserve配置
2.3Linux下的svnserve+ssh配置
2.4Windows下的svnserve+ssh配置(需使用Cygwin,略)
2.5Linux下基于APache的SVN服务器配置
2.6Windows下基于APache的SVN服务器配置
三、建立版本库
3.1Linux下创建版本库
3.2Windows下创建版本库
大多数人都是从客户端开始使用SVN,以下先介绍客户端的使用。
假设已经假设好了SVN服务器,其文件夹地址为http:
//domain/svn/trunk/myproject,用户名为test,密码为test。
(如果服务器端配置的是SVN,则使用svn:
//开头的URL访问;如果服务器端配置的是SVN+SSH,则使用svn+ssh开头的URL访问)
一、客户端的使用
1.1Linux(Ubuntu)系统下一般使用
1)首先需要安装svn客户端,ubuntu下使用$sudoapt-getinstallsubversion(其他请baigoogledu,余同)
2)checkeout命令:
第一次使用时使用checkout命令,把服务器的目录拷贝到本地的当前目录下,同时会建立一个隐藏文件夹记录版本信息:
[工作目录]$svncheckout"http:
//domain/svn/trunk/myproject"--usernametest
然后输入密码
3)svnupdate命令:
获取服务器上的最新版本
[工作目录]$svnupdate(除了第一次要加url和用户名和密码,之后系统会记住)
4)svnadd命令:
要把非版本控制的本地文件添加到版本控制:
[工作目录]$svnaddhello.c
5)svncommit命令:
把本地文件上传到服务器
[工作目录]$svncommit(如果有新的文件,要首先svnadd)
1.2Windows系统下一般使用
1)安装客户端:
2)新建一个文件夹(工作目录),右击选择checkout,填写URL和用户名密码
3)工作目录右键update
4)工作目录右键add
5)工作目录右键commit
1.3Linux下使用SVN+ssh认证(未找到相关资料@_@)
1.4Windows下使用SVN+ssh认证
(参考ubuntu下架设svn服务器及在windows建立svn+ssh客户)
1.4.0安装TortoiseSVN、Puttygen、Pageant
http:
//www.chiark.greenend.org.uk/~sgtatham/putty/
1.4.1转换私钥格式
1)将Linux下的文件
2)选择菜单conversions->ImportKey;选择文件
3)选择Parameters为“SSH-2DSA”或“SSH-2RSA”->Saveprivatekey->保存文件名为username>key.ppk。
1.4.2建立TortoiseSVN与Pageant的关联,并将私钥加入Pageant:
1)鼠标右键选择TortoiseSVN->Settings->Network->SSHclient,输入:
C:
\ProgramFiles\TortoiseSVN\bin\TortoisePlink.exe
2)鼠标右键选择TortoiseSVN->RepoBrowser输入URL:
svn+ssh:
//
3)运行Pageant,右键点击屏幕右下角的图标-〉AddKey,将私钥文件
——如果不想缓存ssh密码,则第8、9步不需要,只保留第二步,但每次checkout、checkin中每进入一个文件夹都要输入两次密码,烦死你:
)
二、服务器端的配置
Web服务器部署可以有三种选择,配置由简单到复杂排列为
·svnserve
·svnserveoverSSH
·Apache+mod_dav_svn模块
下面从最简单的入手,介绍svnserve。
[更新]Windows下服务器端的配置可以使用VisualSVNServer进行傻瓜化安装。
官方网站:
参考链接:
VisualSVN系列介绍(有详细的安装过程介绍,这里就不转述了)
2.1&2.2配置svnserve
svnserve是一个轻型的服务器,可以同客户端通过在TCP/IP基础上的自定义有状态协议通讯,客户端通过使用开头为svn:
//或者svn+ssh:
//svnserve的URL来访问一个svnserve服务器。
2.1Linux下的svnserve配置
2.1.0同样地,使用命令$sudoapt-getinstallsubversion
2.1.1svnserve作为独立守护进程,监听请求
$svnserve-d
$#svnserveisnowrunning,listeningonport3690
——可以使用--listen-port=[端口号]来指定端口,或者--listen-host=[主机名]来指定主机名
假定已经建立一个版本库位于/usr/local/repositories/project路径(版本库的建立稍后提及),此时客户端可以使用svn:
//[主机]/usr/local/repositories/project来进行访问
——可以使用-r选项来限制只输出指定路径下的版本库,从而使客户端访问更为简洁:
$svnserve-d-r/usr/local/repositories
则客户端只要使用svn:
//[主机]/project就可以访问
2.1.2通过inetd使用svnserve
$svnserve-i
——此时svnserve会尝试使用自定义协议通过stdin和stdout来与subversion客户端通话,默认端口为3690。
可以在/etc/services添加如下几行:
svn3690/tcp#subversion
svn3690/udp#subversion
——如果是使用经典的类Unix的inetd守护进程,可以在/etc/inetd.conf添加如下行,则如果有客户连接来到端口3690,inetd会产生一个svnserve进程来做服务
svnstreamtcpnowaitsvnowner/usr/bin/svnservesvnserve-i
2.1.3设置svnserve的内置认证
编辑版本库目录的conf/svnserve.conf文件:
1)设置匿名访问
[general]
anon-access=none#无权限
anon-access=read#只读
anon-access=write#打开匿名的写访问,但这样很危险,不能控制谁来修改版本库
2)使用用户和密码
2.1)定义保存用户名和密码的文件和一个认证域
[general]
password-db=
realm=examplerealm#定义认证域
anon-access=read
auth-access=write
2.2)然后在userfile文件中指明用户名和密码:
(格式为“用户名=密码”)
[users]
harry=foopassword
sall=barpassword
2.2Windows下的svnserve配置
2.2.0安装svnserve
1)从http:
//subversion.tigris.org/servlets/ProjectDocumentList?
folderID=91得到最新版本的Subversion
(如果之前已经安装了subversion,svnserve已经在服务器上运行,需要先停止服务)
2)安装subversion,然后进入subversion的安装目录,找到bin目录下的文件svnserve.exe,int13_svn.dll,libapr.dll,libapriconv.dll,libapriutil.dll,libdb*.dll,libeay32.dll和ssleay32.dll,将它们复制到服务器目录下(如C:
\svnserve)。
2.2.1以守护方式运行svnserve
在命令行窗口输入svnserve.exe--daemon,则svnserve将会在端口3690等待请求,--daemon选项告诉svnserve以守护进程方式运行,这样在手动终止之前不会退出。
这种方式的不便之处是需要保持命令行窗口不关闭。
2.2.2svnserve作为windows服务
svnserve作为windows服务时,在后台运行,可以在启动时自动执行,并且可以使用同其他windows服务一致的管理界面启动和停止服务。
需要使用命令行工具sc.exe定义新的服务(createsvnserve),在windows启动时指明svnserve的调用:
C:
\>sccreatesvnserve
binpath="\"c:
\svnserve\svnserve.exe\"--service--rootc:
\repos"
displayname="Subversion"
depend=tcpip
start=auto
——注意为了回避目录名中的空格等字符,将整个binpath值放在双引号中;另外,sc的命令行很特殊。
在key=value对中,key与=之间不能有空格,但是在value之前,必须有空格。
定义了服务之后,就可以使用GUI工具(如服务管理面板)进行停止、启动和查询,也可以通过命令行的方式进行:
C:
\>netstopsvn
C:
\>netstartsvn
C:
\>scdeletesvn(需要确定先停止了服务)
2.2.3设置svnserve的内置认证
同上Linux配置文件即可。
2.3&2.4配置svnserve+ssh
2.3Linux下的svnserve+ssh配置
2.3.0介绍与安装ssh
通过此方法,svnserve不会作为守护进程启动,而是SSH来启动svnserve,以SSH授权用户进行。
$sudoapt-getinstallssh
2.3.1创建帐户
$sudoadduser
$sudoaddgroup
$sudoaddgroup
2.3.2为成员生成密钥对
首先必须切换为
$sudo
$(提示输入密码)
$cd~/
$whoami
——这时产生两个文件:
私钥
然后创建目录/home/
$cp
2.4Windows下的svnserve+ssh配置
需要使用Cygwin来配置ssh,此处略,详情可参考
2.5&2.6基于Apache服务器的SVN配置
概述
Apache的http服务器是一个subversion可以利用的“重型”网络服务器,通过一个自定义模块,httpd可以让SVN版本库通过WebDAV/DeltaV协议在客户端前可见。
可以将浏览器指向版本库的URL,无需安装SVN客户端就可以浏览内容。
基于Apache的SVN需要两个包的四个部分:
Apachehttpd2.0及其中包含的mod_davDAV模块,Subversion及与之一起发布的mod_dav_svn模块。
有了上述组件之后,配置步骤一般如下
1)配置好http2.0,并且使用mod_dav启动
2)为mod_dav安装mod_dav_svn插件
3)配置httpd.conf来发布版本库
2.5Linux下基于APache的SVN服务器配置
(参考
(参考“ubuntu下svn+apache版本管理服务器配置”)
2.5.1安装aphache
$sudoapt-getinstallapache2#安装apache
$sudoapt-getinstalllibapache2-svn#安装相关组件
$sudoapt-getinstallsubversion#安装svn
安装完毕后启动apache
$/usr/local/apache/bin/apachectl–kstart
——用浏览器查看http:
//localhost/,得到itworks,说明apache已经配置成功了。
2.5.2创建版本库(见第三节)
2.5.3添加用户并设置密码文件
版本库的密码文件,一般命名为PasswdFile,由用户通过命令创建,里面保存授权用户的用户名和MD5加密后的密码。
创建密码文件,密码文件保存在版本库文件目录下,在终端通过下面的命令创建密码文件:
$htpasswd-c/etc/svn/passwordfileusername
passwordfile密码文件名称,可以由用户自行命名
username你希望添加的用户名,比如zhangsan,lisi,wangwu
-c用来创建密码文件
按提示输入密码,添加成功后会提示adduserusername,然后可以再继续添加第二个用户。
$htpasswd/etc/svn/passwordfileseconduser
2.5.4httpd.conf文件修改
conf文件正常安装的话在etc/apache2/目录下,双击打开进行编辑,添加以下内容:
LoadModuledav_svn_modulemodules/mod_dav_svn.so加载mod_dav_svn模块
LoadModuleauthz_svn_module/usr/lib/apache2/modules/mod_authz_svn.so加载mod_anthz.svn模块
DAVsvn
SVNPath/home/bb/svn/vcard/指明版本库的路径
AuthTypeBasic认证类型为基本认证
AuthName"SVNrepos"认证名称,将在IE界面弹出一个对话框,其标题就是SVNrepos
AuthUserFile/home/bb/svn/vcard/VcardPasswdFile加载密码文件,访问版本库用户的文件,用apache的htpasswd命令生成
#AuthzSVNAcessFile//home/bb/svn//vcard/accesspolicy访问版本库权限的文件
#satisfyAny
Requirevalid-user要求验证用户,即不能匿名访问;如果没有这个语句,则只能第一个用户可以访问新建库
保存文件退出,重新启动apache
#/usr/local/apache/bin/apachectl–krestart
测试:
$svncheckouthttp:
//localhost/svn
2.6Windows下基于APache的SVN服务器配置
2.6.1下载安装Apache
APache:
http:
//httpd.apache.org/download.cgi
——如果你将Apache安装成一个服务,它将以本地system帐户来运行。
为Apache创建一个单独的用户来运行它将会更安全一些。
——请确保运行Apache的用户有版本库的完全访问权限(右键版本库目录->属性->安全)。
要不然,用户将无法提交他们的更改。
——就算Apache以本机system来运行,你也要设置它能完全读写版本库目录。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SVN 入门 配置 使用