您好,欢迎访问三七文档
SVN服务器建立/使用手册1/26SVNSVNSVNSVN服务器建立服务器建立服务器建立服务器建立////使用使用使用使用手册手册手册手册周宇辉周宇辉周宇辉周宇辉2008200820082008----07070707----04040404SVN服务器建立/使用手册2/26目录目录目录目录1.SVN介绍..........................................................31.1版本控制........................................................31.1SVN.............................................................31.2相关概念........................................................52.SVN服务器的建立..................................................72.1基于SVN协议的服务端.............................................72.2基于HTTP协议的服务端............................................82.3SVN密码管理....................................................92.4SVN权限管理(实例).............................................102.5服务器端监视...................................................123.客户端的使用.....................................................143.1TORTOISESVN.....................................................143.1.1工作目录...................................................163.1.2与BeyondCompare集成.......................................163.1.3提交修改...................................................173.2SUBCLIPSE.......................................................183.2.1安装.......................................................183.2.2取得工程...................................................203.2.3提交成果(Commit)..........................................233.2.4查看历史...................................................243.2.5获取特定版本...............................................243.2.6上传新文件.................................................254.注意事项.........................................................26SVN服务器建立/使用手册3/261.1.1.1.SVNSVNSVNSVN介绍介绍介绍介绍1.1版本控制版本控制版本控制版本控制简单的讲,版本控制可以让你:•在开发过程中保存产品的中间结果•获取你之前所保存的任一中间结果•并对一个阶段的产品进行打包(Label,Tag)•对任两个中间结果进行比较图1-1版本控制版本控制是管理信息修改的艺术,它一直是程序员最重要的工具,程序员经常会花时间做出小的修改,然后又在某一天取消了这些修改,想象一下一个开发者并行工作的团队-或许是同时工作在同一个文件!-你就会明白为什么一个好的系统需要管理潜在的混乱。1.1SVNSVNSVNSVNSVN全名Subversion,即版本控制系统版本控制系统版本控制系统版本控制系统。SVN是一个跨平台的软件,支持大多数常见的操作系统。作为一个开源的版本控制系统,Subversion管理随时间改变的数据。这些数据放置在一个中央资料档案库(repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把文件恢复到旧的版本,或是浏览文件的变动历史。Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括了程序源码。传统的版本控制工具采用Lock–Modify–Unlock方式(如图1-2),例如VSS。在这种方式下,一旦用户修改文件,该文件处于锁定状态,此时不允许其他用户修改。也即一个文件当前仅允许一个用户拥有写权限。客户端服务端配置库提交、导入、labeling提取、导出账户管理权限控制提交:向配置库中增加新对象或提交现有对象的变更Labeling:为配置库中的对象建立基线提取:从配置库中获取指定对象的指定版本,有可能会锁定该对象。导入:向配置库中导入已备份的数据导出:从配置库中导出现有数据,用于备份、移动或其他目的。SVN服务器建立/使用手册4/26比较常见的Lock是采用文件只读\非只读实现的。图1-2Lock-Modify-UnlockSVN则采用Copy-Modify-Merge方式(如图1-3),这种方式的好处可以允许多个用户同时修改相同的文件。一个用户在对已修改的文件进行上传时,如果此时服务器上的版本比该文件基于的版本要新,则会产生冲突,不允许该用户上传。该用户必须获取服务器上的新版本,与本地的修改进行合并(Merge),然后进行上传。图1-3Copy-Modify-MergeSVN服务器建立/使用手册5/26图1-4是SVN的架构图,从图中可以看出,SVN的客户端可以采用三种不同的资源库访问方式:http,svn,local。SVN的资源库类型有两种。图1-4SVN架构1.2相关概念相关概念相关概念相关概念TagsTagsTagsTagsTag是项目在某一时间的快照(snapshot)。对于SVN来讲,每一次资源库的修订都是一次快照。Tag可以用来建立milestone。Tag仅仅是项目某一时刻的标记,与工作空间,分支等没有任何关系。SVN中的tag允许自定义名称,这样就可以方便的根据tag名称获取项目某一时刻的版本。TrunkTrunkTrunkTrunk////BBBBranchranchranchranchTrunk是项目工作的主干道,也可以理解为项目开发的原始路线、主开发进程。如果没有特殊的需求,项目会一直在trunk中进行。在某个时刻,可能需要创建工作文档的第二个拷贝,然后单独维护这个拷贝。这就有了branch的概念,一个与其他开发进程独立的开发进程。以上如图1-5所示,在主干道上可以创建多个branch。SVN服务器建立/使用手册6/26【【【【注意注意注意注意】】】】※※※※trunk以及branch只是两个概念,在SVN中并没有实实在在的两个东西,如果你愿意的话,trunk也可以是branch,branch也可以是trunk。两种从实质上讲并没有什么区别,可以认为是两个不同的工作空间。※※※※虽然只是概念,但是在开发的时候尤其注意不要弄混当前的工作空间,防止发生不必要的损失。推荐为项目创建trunk,branch两个目录。图1-5trunk、branch如图1-6,创建一个branch。图1-6创建一个branch创建Branch后,工作的revision的变化,如图1-7。图1-7版本号的变化※※※※SVN对于tag以及branch的创建不是easycopy的方式,所以不用担心空间的损耗等。※※※※SVN的版本号(revision)对于整个SVN来讲是递增的.SVN服务器建立/使用手册7/262.SVN服务器服务器服务器服务器的建立的建立的建立的建立安装环境:WindowXPprofessional软件:服务端软件有三种运行方式,一种是基于ApacheHttpServer,一种是SubversionStandaloneServer,还有一种local方式。下面分别介绍svn、http两种方式的安装方法。2222.1.1.1.1基于基于基于基于svn协议的服务端协议的服务端协议的服务端协议的服务端【1】安装Subversion后,使用命令svnadmincreateD:\MySVN创建svn资源库,资源库地址为D:\MySVN【2】打开D:\MySVN\conf\svnserve.conf,去掉以下内容之前的注释符[general]anon-access=noneauth-access=writepassword-db=passwdrealm=MyFirstRepository说明:anon-access=none不允许匿名访问!auth-access=write允许提交修改password-db=passwd密码文件名字如果[general]anon-access=read→anon-access=none【3】用记事本打开D:\MySVN\conf\passwd,添加用户名(user)和密码(passwd)[users]user=password可以添加多个这样的用户名密码对。【4】创建svn服务,并启动,这样svn就会开机自动启动在控制台下,输入如下命令:sccreatesvnservicebinpath=\D:\programfiles\Subversion\bin\svnserve.exe\--service–rD:\MySVNdisplayname=SVNServicedepend=TcpipSVN服务器建立/使用手册8/26注意注意注意注意::::a.如果路径中包括空格,一定要用“\”处理“”号,例如svnserve.exe在c:\programfiles\subversion\中,则命令应该写为binpath=\c:\programfiles\subversion\bin\svnserve.exe\b.sc对选项的格式还有要求,所有的“=”前不能有空格,而后面必须有空格。例如depend=Tcpip不能写为depend=Tcpip或depend=Tcpip【5】经过上述四步的操作,就可以使用svn://localhost访问SVN服务器。2.2基于基于基于基于http协议的服务端协议的服务端协议的服务端协议的服务端基于ApacheHttpServer的Subversion,有以下好处:•能使用WebDAV协议•能使用浏览器作为客户端工具浏览源码仓库。•可以很容易的支持SSPI(Windows域认证)和LDAP,这些都是Apache本身就支持的。•能得到比较完善的Apache安全认证系统,比如SSL加密连接。目前SVN1.4.6(当前最新版)暂不支持Apache2.2以上版本,请使用Apache2.0版本进行配置。如果先安装Apache2.0,然后在安装Subversion1.4.6,则Subversion的安装会提示是否配置Apache服务器,选择允许配置。则以下Apache的配置步骤可以省略。【1】安装Apache服务器【2】检查Apache的modules目录是否包含mod_dav_svn.so以及mod_authz_svn.so
本文标题:SVN 使用手册
链接地址:https://www.777doc.com/doc-6237608 .html