《SVN入门及配置使用.docx》由会员分享,可在线阅读,更多相关《SVN入门及配置使用.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SVN入门及配置使用SVN,即Subversion,是一个自由开源的版本控制系统,可以将数据恢复到早期版本, 或者检查数据修改的历史,这些数据可以是源代码,也可以是其他类型的文件。在SVN出现之前,CVS是开源世界版本控制工具的事实标准,然而CVS存在一些固 有的缺陷,并且修复这些缺陷需要耗费很大的精力,因此,SVN的发起者Brian Behlendorf 和CollabNct决定重新编写一个版本控制系统,保存CVS的基本思想,但要修正其中错 误和不合理的特性。于是,SVN作为CVS的继任者出现了。SVN的设计者们力图通过 两方面的努力赢得CVS用户的青睐:保持开源系统的设计以及界面风格与CV
2、S尽可能 类似,同时尽力弥补CVS许多显著的缺陷。这些努力的结果使得从CVS迁移到SVN 不需要作出重大的变革,因此越来越多的人选择了 SVNo目录一、客户端的使用1.1 Linux系统下一般使用(Ubuntu)1.2 Windows系统下般使用1.3 Linux下使用SVN+ssh认证(未找到相关资料_)1.4 Windows 下使用 SVN+ssh 认证二、服务器端的配置2.1 Linux 下的 svnserve 配置2.2 Windows 卜的 svnserve 配置2.3 Linux 下的 svnserve+ssh 配置2.4 Windows 下的 svnserve+ssh 配置(需使
3、用 Cygwin,略)2.5 Linux下基于APache的SVN服务器配置2.6 Windows卜基于APache的SVN服务器配置三、建立版本库3.1 Linux卜创立版本库3.2 Windows下创立版本库大多数人都是从客户端开始使用SVN,以下先介绍客户端的使用。假设已经假设好 了 SVN服务器,其文件夹地址为hHp:/domain/svn/trunk/myproject,用户名为test,密码 为test。(如果服务器端配置的是SVN,那么使用svn:开头的URL访问;如果服务器端 配置的是SVN+SSH,那么使用svn+ssh开头的URL访问)重启Apache服务。使用浏览器测试。
4、三、建立版本库在前面的服务器配置上我们通常假设已经建立了版本库,这是为了防止在每种配置中 重复赘述这种操作,因此把它独立出来讲。版本库创立完毕后会在目录下生成假设干个文件和文件夹:dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部数据;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户 端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本 号。3.1 Linux下创立版本库版本库有两种数据存储格式:Berkeley DB FS
5、FS,推荐选用FSFS格式,具体可 以查阅参考资料了解二者的区别。创立版本库时,在终端运行如下命令:#运行创立版本库的命令,指定数据存储为FSFS,如果要指定为Berkeley DB, 那么将fsfs替换为bdb$ svnadmin create -fs-type fsfs /etc/svn/repos创立版木库,运行这个命令后,我们就 可以看到一个版本库应有的文件更改版本库的访问权限$ sudo mkdir /home/svn$ cd /home/svn$ sudo mkdir my project前面三条命令用于创立版本库目录,如果已经建立,就可以省略掉;后面三条用于 修改权限$ sudo
6、 chown -R www-data myprojeci$ sudo chgrp -R subversion myproject$ sudo ch mod -R g+rws myproject这条命令允许用户对版本库进行读写操作,即可 以更新,可以提交3.2 Windows下创立版本库可以使用TortoiseSVN图形化的完成这一步,在目录E:subversionrepository下右键 -TortoiscSVN-Crcatc Repository here.”,然后可以选择版本库模式,使用默认即可, 然后就创立了一系列目录和文件。Tips如果下载的是setup.exe版本,安装程序安装后会
7、自动设置系统变量,如果下载 的是zip版就需要手动设置系统变量.也可以使用命令行来创立:C: svnadmin create F:svn一、客户端的使用1.1 Linux (Ubuntu)系统下一般使用1)首先需要安装svn客户端,ubuntu下使用$sudo apt-gct install subversion (其他请 baigoogledu,余同)2) checkeout命令:第一次使用时使用checkout命令,把服务器的目录拷贝到本地的 当前目录下,同时会建立一个隐藏文件夹记录版本信息:工作 U 录$svn checkout htlp:/domain/svn/trunk/myproj
8、ect username test 然后输入密码3) svn update命令:获取服务器匕的最新版本工作目录$svn update (除了第一次要加url和用户名和密码,之后系统会记住)4) svn add命令:要把非版本控制的本地文件添加到版本控制:工作目录$svn add hello.c5) svn commit命令:把本地文件上传到服务器工作目录$svn commit (如果有新的文件,要首先svn add)1.2 Windows系统下一般使用1)安装客户端:htip:tortoisesvn.nct/downloads2)新建一个文件夹(工作目录),右击选择checkout,填写URL
9、和用户名密码3)工作目录右键update4)工作目录右键add5)工作目录右键commit1.3 Linux下使用SVN+ssh认证(未找到相关资料_)1.4 Windows 下使用 SVN+ssh 认证(参考ubuntu卜架设svn服务器及在windows建立svn+ssh客户)安装 TorioiseSVN、Puttygen Pageant :/ 1.4.1 转换私钥格式1)将 Linux 下的文件key 拷贝到 windows 下,运行 Puttygen;2)选择菜单 conversions-Import Key;选择文件key,提示Enter passphrase for key,输入创
10、立公私钥对示使用的passphrase关键字;3)选择 Parameters 为“SSH-2 DSA”或“SSH-2 RSA”-Save private key-保存文件名为 uscrnamokcy.ppk o1.4.2 建立TortoiseSVN与Pagean的关联,并将私钥加入Pageanl:1)鼠标右键选择 TortoiseSVN-Settings-Network-SSH client,输入:C:Program FilesTortoiseSVNbinTortoisePlink.exe2)鼠标右键选择 TortoiseSVN-RepoBrowser 输入 URL:svn+ssh:/usr/
11、local/svn/tiunk3)运行Pageant,右键点击屏幕右下角的图标)Add Key,将私钥文件 key.ppk 力口入。如果不想缓存ssh密码,那么第8、9步不需要,只保存第二步,但每次check out、 check in中每进入一个文件夹都要输入两次密码,烦死你:)二、服务器端的配置Web服务器部署可以有三种选择,配置由简单到复杂排列为svnservesvnserve over SSHApache+mod_dav_svn 模块下面从最简单的入手,介绍svnserveo更新Windows下服务器端的配置可以使用VisualSVN Server进行傻瓜化安装。官方网站:参考链接:V
12、isualSVN系列介绍(有详细的安装过程介绍,这里就不转述了)2.1 &2.2 用己置 svnservesvnserve是一个轻型的服务器,可以同客户端通过在TCP/IP基础上的自定义有状态 协议通讯,客户端通过使用开头为svn:或者的URL来访问,个 svnserve服务器。2.1 Linux 下的 svnserve 配置2.1.1 同样地,Ssudo apt-get install subversion2.1.2 svnserve作为独立守护进程,监听请求Ssvnserve -d$ #svnservre is now running, listening on port 3690可以使用
13、-listen-port,端口号来指定端口,或者-listen-host=主机名来指定主 机名假定已经建立一个版本库位于/usr/local/repositories/project路径(版本库的建立稍后 提及),此时客户端可以使用svn:主机/usr/local/repositories/project来进行访问可以使用-r选项来限制只输出指定路径下的版本库,从而使客户端访问更为简 洁:Ssvnserve -d -r /usr/local/repositories那么客户端只要使用svn:主机/project就可以访问2.1.3 通过 inetd 使用 svnserveSsvnserve -
14、i此时svnserve会尝试使用自定义协议通过stdin和stdout来与subversion客户端 通话,默认端口为3690。可以在/etc/services添加如下几行:svn 3690/tcp #subversionsvn 3690/udp #subversion-如果是使用经典的类Unix的inetd守护进程,可.以在/elc/inetd.conf添加如卜.行, 那么如果有客户连接来到端口 3690, inetd会产生一个svnserve进程来做服务svn stream tcp nowait svnowner /usr/bin/svnserve svnserve -i2.1.4 设置s
15、vnserve的内置认证编辑版本库目录的conf/svnserve.conf文件:1)设置匿名访问generalanon-access = none # 无权限anon-access = read #只读anon-access = wrile#翻开匿名的写访问,但这样很危险,不能控制谁来修改版本库2)使用用户和密码2.1) 定义保存用户名和密码的文件和一个认证域generalpassword-db = #指出保存用户和密码列表的文件,可以是绝对或相对路径 realm = example realm #定义认证域anon-access = read auth-access = write2.2)
16、 然后在userfile文件中指明用户名和密码:(格式为“用户名=密码”)users |harry = foopasswordsail = barpassword2.2 Windows 下的 svnserve 配置2.2.1 安装 svnserve1)从 得到最新版 本的 Subversion(如果之前已经安装了 subversion, svnserve已经在服务器上运行,需要先停止服务)2)安装subversion,然后进入subversion的安装目录,找到bin目录下的文件 svnserve.exe, intl3_svn.dll, libapr.dlh libapriconv.dll,
17、libapriutil.dlh libdb*.dlb libcay32.dll 和ssleay32.dll,将它们复制到服务器目录下(如C:svnserve)。2.2.2 以守护方式运行svnserve在命令行窗口输入svnservc.cxc daemon,那么svnserve将会在端口 3690等待请求, -daemon选项告诉svnserve以守护进程方式运行,这样在手动终止之前不会退出。这种 方式的不便之处是需要保持命令行窗口不关闭。2.2.3 svnserve 作为 windows 服务svnserve作为windows服务时.,在后台运行,可以在启动时自动执行,并且可以使用 同其他w
18、indows服务一致的管理界面启动和停止服务。需要使用命令行工具sc.exe定义新的服务(create svnserve),在windows启动时指明 svnserve的调用:C:sc create svnservebinpath= c:svnservesvnserve.exe -service -root c:repos displayname= Subversiondepend= tcpipstart= auto注意为了回避目录名中的空格等字符,将整个binpam值放在双引号中;另外, sc的命令行很特殊。在key= value对中,key与=之间不能有空格,但是在value之 前,必须有
19、空格。定义了服务之后,就可以使用GUI工具(如服务管理面板)进行停止、启动和查询, 也可以通过命令行的方式进行:C:net stop svnC:net start svnC:sc delete svn (需要确定先停止了服务)2.2.4 设置svnserve的内置认证同上Linux配置文件即可。2.2.5 .4 百己置 svnserve+ssh2.3 Linux 下的 svnserve+ssh 配置2.3.1 介绍与安装ssh通过此方法,svnserve不会作为守护进程启动,而是SSH来启动svnserve,以SSH 授权用户进行。$sudo apt-get install ssh2.3.2
20、创立帐户$sudo adduser #为参与工程开发的成员建立用户帐户Ssudo addgroup #建立用户组$sudo addgroup #将用户帐户添加进用户组2.3.3 为成员生成密钥对首先必须切换为的用户登陆Linux:Ssudo $ (提示输入密码)$cdSwhoami$ssh-kegen -b 1024 -t dsa -N -f #使用 DSA 力U密, 也可以改为RSA加密这时产生两个文件:私钥key和公钥vusernamekey.pub然后创立目录/home/.ssh,把公钥拷贝到该目录下:Sep kcy.puh Zhome/.ssh/authrizcd_kcys #文件名必
21、须为 authorized_keys2.4 Windows 下的 svnserve+ssh 配置需要使用Cygwin来配置ssh,此处略,详情可参考 :/2.5 &2.6基于Apache服务器的SVN配置概述Apache的 服务器是一个subversion可以利用的“重型”网络服务器,通过一个自定 义模块,htlpd可以让SVN版本库通过WebDAV/DeltaV协议在客户端前可见。可以将 浏览器指向版本库的URL,无需安装SVN客户端就可以浏览内容。基于Apache的SVN需要两个包的四个局部:Apache d2.0及其中包含的mod_dav DAV模块,Subversion及与之一起发布的
22、mod_dav_svn模块。有了上述组件之后,配 置步骤一般如下1)配置好 2.0,并且使用mod_dav启动2)为 mod_dav 安装 mod_dav_svn 插件3)配置 d.conf来发布版本库2.5 Linux下基于APache的SVN服务器配置(参考 :/ (参考ubuntu下svn+apache版本管理服务器配置”)2.5.1 安装 aphache$sudo apt-get install apache2 #安装 apache$sudo apt-get install libapache2-svn #安装相关组件$sudo apt-get install subversion #
23、安装 svn安装完毕后启动apache$/usr/local/apache/bin/apachectl -k start用浏览器查看 :localhost/,得到it works,说明apache已经配置成功了。2.5.2 创立版本库(见第三节)2.5.3 添加用户并设置密码文件版本库的密码文件,一般命名为PasswdFile,由用户通过命令创立,里面保存授权用 户的用户名和MD5加密后的密码。创立密码文件,密码文件保存在版本库文件目录下, 在终端通过下面的命令创立密码文件:Shtpasswd -c /etc/svn/passwordfilc usernamepasswordfile密码文件名
24、称,可以由用户自行命名username你希望添加的用户名,比方zhangsan, lisi, wangwu-c用来创立密码文件按提示输入密码,添加成功后会提示add user username,然后可以再继续添加第二 个用户。Shtpasswd /etc/svn/passwordfile seconduser2.5.4 d.conf 文件修改conf文件正常安装的话在eic/叩ache2/目录下,双击翻开进行编辑,添加以下内容:LoadModulc dav_svn_modulc modulcs/mod_dav_svn.so 力口载 mod_dav_svn 模块LoadModule authz_
25、svn_module /usr/lib/apache2/modules/mod_authz_svn.so 力口载 mod_anthz.svn 模块DAV svnSVNPath /home/bb/svn/veard/ 指明版本库的路径AuthType Basic认证类型为基本认证AuthName SVN repos认证名称,将在IE界面弹出一个对话框,其标题就是SVN reposAuthUserFile/home/bb/svn/vcard/VcardPasswdFile 加载密码文件,访问版本库用 户的文件,用apache的htpasswd命令生成# AuthzSVNAcessFile /hom
26、e/bb/svn/vcard/accesspolicy 访问版本库权限的文件# satisfy AnyRequire valid-user要求验证用户,即不能匿名访问;如果没有这个语句,那么只能 第一个用户可以访问新建库保存文件退出,重新启动叩ache# /usr/local/apache/bin/apachecll -k restart测试:$svn checkout :/localhost/svn2.6 Windows下基于APache的SVN服务器配置2.6.1 下载安装ApacheAPache: hup:如果你将Apache安装成一个服务,它将以本地system帐户来运行。为Apach
27、e 创立一个单独的用户来运行它将会更平安一些。请确保运行Apache的用户有版本库的完全访问权限(右键版本库目录,属性 平安)。要不然,用户将无法提交他们的更改。就算Apache以本机system来运行,你也要设置它能完全读写版本库目录。如果没有为Apache配置这个许可,川户将会得到“禁止访问”的错误信息,在 Apache的错误日志中表现为错误500。2.6.2 配置 Subversion使用Windwos资源管理器,来到Subversion的安装目录(通常是c:program filesSubversion),找到文件 hpd/mod_dav_svn.so 和 mod_aulhz_svn.
28、so,复制这些文件 到 Apache 的模块目录(通常是 c:program fileapache groupapache2modules)。2.6.3 配置 d.conf 文件路径通常为 c:program filesapache groupapache2confhttd.conf),修改以下内容:去掉以下两行的注释号#LoadModule dav_fs_module modules/mod_dav_fs.so#LoadModule dav_module modules/mod_dav.so在LoadModule节的最后添加以下两行:LoadModule dav_svn_module mod
29、ules/inod_dav_svn.soLoadModule iuthz_svn_module modules/mod_authz_svn.so文件末尾添加以下行,让Apache知道哪个URL将被Subversion使用:DAV svnSVNParentPath D:SVNAuthType BasicAuthName Subversion repositoriesAuthUserFile D:passwd#AuthzSVNAccessFile D:svnaccessfileRequire valid-user这样配置表示:你所有的版本库将位于D:SVN目录下,要访问你的版本库可 以使用这样的URL: :/MyServer/svn/,访问权限将由passwd文件中的用户名/密码 来限制。要创立passwd文件,可以翻开命令行,将当前目录切换到apache2目录,输入命令:c:program filcsapachc groupapachc2 binhtpasswd -c passwd