北京传智播客SVN培训教案

上传人:汽*** 文档编号:569511740 上传时间:2024-07-30 格式:PDF 页数:37 大小:2.19MB
返回 下载 相关 举报
北京传智播客SVN培训教案_第1页
第1页 / 共37页
北京传智播客SVN培训教案_第2页
第2页 / 共37页
北京传智播客SVN培训教案_第3页
第3页 / 共37页
北京传智播客SVN培训教案_第4页
第4页 / 共37页
北京传智播客SVN培训教案_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《北京传智播客SVN培训教案》由会员分享,可在线阅读,更多相关《北京传智播客SVN培训教案(37页珍藏版)》请在金锄头文库上搜索。

1、传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)SubversionSubversionSubversionSubversionTortoisesvnTortoisesvnTortoisesvnTortoisesvn( ( ( (WinWinWinWin 1.6)1.6)1.6)1.6)版版版版本本本本控控控控制制制制讲师:毛伟(E_mail:)Http:/WWW.EasyJF.Com2009 年 10 月 28 日使用操作手册传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)目录目录目录目录1. S

2、ubversion简介.12. 安装 SVN 服务端(Subversion).22.1. 下载 Subversion.22.2. 安装 Subversion.43. SVN 服务端配置.63.1. 启动 SVN 服务器.63.2. 建立 SVN 单仓库.93.3. 建立 SVN 多仓库.103.4. 配置仓库权限.114. 安装 SVN 客户端(TortoiseSVN).155. SVN 与 Eclipse 整合.266. SVN 与 MyEclipse 整合.287. SVN 服务端与 Apache2.2 集成.298. Google Code托管SVN.34传智播客 传递 IT 圣火 加入

3、传智播客 畅想美好未来(Http:/www.Itcast.Cn)1/371.SubversionSubversionSubversionSubversion 简介简介简介简介Subversion 版本控制系统也,一般简称 SVN(以下通称 SVN)。SVN 与 CVS 一样,是一个跨平台的 C/S 软件,支持大多数常见的操作系统。作为一个开源的版本控制系统,Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。S

4、ubversion是一个通用的系统,可用来管理任何类型的文件,其中包括了程序源码。SubVersion:实现服务系统的软件,也即是 SVN 服务端程序。TortoiseSVN:是 SVN 客户端程序,为 windows 外壳程序集成到 windows 资源管理器和文件管理系统的 Subversion 客户端。SVNService.exe:是专为 SubVersion 开发的一个用来作为 Win32 服务挂接的入口程序。同时版本控制如此广泛的原因是因为它实际上能帮助运营一个项目的所有方面: 内部开发者交流、发布管理、缺陷管理、代码稳定性和试验开发投入,以及对某个变更所属开发者的归因和授权。 版本

5、控制系统为这些领域提供了一个集中的协调力量。 版本控制的核心是变更管理: 识别对项目文件的每一个不相关的变更, 使用元数据例如变更的日期和作者来注解每个变更,之后无论使用什么方法,任何人询问时,重放这个事实。这是变更信息的基本单元的交流机制。传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)2/372. 2. 2. 2.安装安装安装安装 SVNSVNSVNSVN 服务端服务端服务端服务端(Subversion)(Subversion)(Subversion)(Subversion)2.1.2.1.2.1.2.1. 下载下载下载下载Subversio

6、nSubversionSubversionSubversion如果是升级或首次安装 Subversion,笔者建议下载安装最新的稳定版本,毕竟最新的稳定版本官方修复了前几个版本大量的软件故障(Bug)。(浏览器地址栏中打开如下地址:http:/subversion.tigris.org点击上图中的【WindowsWindowsWindowsWindows binariesbinariesbinariesbinaries】超链接,打开如下图所示的网页。传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)3/37这里列出了适合在 Windows 环境下安

7、装的多个 SVN 服务器分支版本,如适合与Apache 集成的版本,二进制版本,减化后的主干版本等。选择一种适合你自己需求的安装版本下载,但一般我们选择第二个来进行安装(Tigris.org (Apache 2.2-compatiblebinaries; if you know you need them, Apache 2.0-compatible binaries are alsoavailable) ),即适合与 Apache 集成的版本。点击打开该超链接。传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)4/37(打开后如上图所示。这里列出

8、来的都是最新的 Subversion 稳定版本,选择第二个(Setup-Subversion-1.6.5.msi)点击下载即可完成 Subversion 的安装文件下载。2.2.2.2.2.2.2.2. 安装安装安装安装SubversionSubversionSubversionSubversion双击运行所下载的 Setup-Subversion-1.6.5.msi 安装文件,进行 SVN 服务器端的安装操作。Subversion 的安装很智能傻瓜化。一直点 Next 即可。其它有一个步骤需要我们选择安装的目录,这里我们改一下,不要安装在默认的 C 盘目录下,选择安装在【D:usrlocal

9、SVNSubversion】目录下。最终安装完成后,如何验证在我们的服务器上就成功安装了 Subversion 呢?因为Subversion 在安装时,同 JAVA 的开发环境(JDK)的安装一样,同样会自动的把安装目录下的 bin 目录设置到系统的系统变量中去。 如果你是使用的绿色版, 那么设置系统变量这个步骤就得你自己手动的来设置了,如:传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)5/37此时,如果我们在系统的命令行下面任何的一个目录结构下执行命令: 【svnserve-help】如果能正常显示如下图所类示的信息,则表明我们的 Subve

10、rsion 的安装是成功了的。反之,请检查你的安装步骤是否成功,但一般来说,如果不出灵异事件,此安装步骤的成功率基本是上 100%。传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)6/373. 3. 3. 3.SVNSVNSVNSVN 服务端配置服务端配置服务端配置服务端配置安装好 SVN 服务端的管理软件(Subversion)后,接下来就需要进行一些很细节的配置了,不然难以保证在以后的时间里 SVN 服务器能稳定正常的运行。3.1.3.1.3.1.3.1. 启动启动启动启动SVNSVNSVNSVN服务器服务器服务器服务器在 Subversio

11、n 中包含svnserve 一个轻型的独立服务器,它使用一个基于一般TCP/IP 连接的定制协议。用于小型安装,或者不能使用全能 Apache 服务器的地方。svnserve 文件存在于 Subversion 所安装目录的 bin目录下。在 linux 下,使用命令启动服务:svnservesvnservesvnservesvnserve -d-d-d-d -r-r-r-r svnrootsvnrootsvnrootsvnroot-d 表示-daemon(简写) ,即关掉执行命令的窗口,服务继续存在。 -r 表示-root,即指定项目版本仓库的根目录。而在 windows 下,用同样的命令也可

12、以,只是关掉 cmd 窗口后,服务也就给关闭了。这样如果服务器一但死机、 注销、 或重启后也就需要服务器管理人员手动的再次去重新启动传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)7/37svnserve 进程。这个问题的解决办法,在 subversion 的 1.4 版以前,是用 svn windowsservice wrapper,将其包装为服务。而 subversion1.4 以后,是可以直接支持以服务器启动的。 方法就是利用 xp、 2000 以上的系统自带的工具 service control, 执行文件是 sc.exe。注意: 要想使

13、用sc命令必须安装 Windows2000/2003 Resource Kit( 资源工具包),否则使用该命令无效。在 cmd 窗口输入命令如下:scscscsc createcreatecreatecreate SVN-ServiceSVN-ServiceSVN-ServiceSVN-Service binpath=binpath=binpath=binpath=D:usrlocalSVNSubversionbinsvnserve.exeD:usrlocalSVNSubversionbinsvnserve.exeD:usrlocalSVNSubversionbinsvnserve.exeD:

14、usrlocalSVNSubversionbinsvnserve.exe -service-service-service-service -r-r-r-rD:usrlocalSVNRepositoryRootD:usrlocalSVNRepositoryRootD:usrlocalSVNRepositoryRootD:usrlocalSVNRepositoryRoot displayname=displayname=displayname=displayname= SVN-ServiceSVN-ServiceSVN-ServiceSVN-Service start=start=start=s

15、tart= autoautoautoautodepend=depend=depend=depend= TcpipTcpipTcpipTcpipbinpath 指定 svnserve 的路径和命令。注意其参数是-service,而不是-daemon. 不能用-d 和-i,-t 等参数。start= auto 表示服务自动启动。注意,等于号的左边无空格,而右边必须有一个空格, 真 BT 的微软格式。 Displayname、 start、 depend 这些都是 sc create命令的属性,不作过多的讲解,可在网上搜索查询到关于此命令的讲解。其中,在此命令中-r(-root)项目版本仓库的根目录

16、(D:usrlocalSVNRepositoryRoot), 这个目录我们是不存在的, 所以需要先建立 RepositoryRoot 这个目录(此目录应该是 Subversion 安装目录的兄弟目录),当然,在下一节配置 SVN 仓库的时候会用命令行命令的方式创建此目录,此目录也就是管理项目的 SVN 仓库目录。执行完后,系统返回SCSCSCSC CreateServiceCreateServiceCreateServiceCreateService SUCCESSSUCCESSSUCCESSSUCCESS表示服务创建成功,然后执行:netnetnetnet startstartstartst

17、art SVN-ServiceSVN-ServiceSVN-ServiceSVN-Service传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)8/37启动服务,系统返回:SVN-Service 服务正在启动。SVN-Service 服务已经启动成功。执行:netnetnetnet stopstopstopstop svnservicesvnservicesvnservicesvnservice停止服务,系统返回:SVN-Service 服务正在停止.SVN-Service 服务已成功停止。执行scscscsc deletedeletedelet

18、edelete svnservicesvnservicesvnservicesvnservice删除服务。创建相同服务前必须删除注:Subversion 服务默认监听的服务端口为 3690,有时候,我们会因为防火墙或其它原因,需要修改这些默认端口。修改默认提供的端口可在启动 svnserve 时加上配置参数-listen-port 端口号。如:scscscsc createcreatecreatecreate SVN-ServiceSVN-ServiceSVN-ServiceSVN-Service binpath=binpath=binpath=binpath=D:usrlocalSVNSub

19、versionbinsvnserve.exeD:usrlocalSVNSubversionbinsvnserve.exeD:usrlocalSVNSubversionbinsvnserve.exeD:usrlocalSVNSubversionbinsvnserve.exe -listen-port-listen-port-listen-port-listen-port 3691369136913691-service-service-service-service-r-r-r-r D:usrlocalSVNRepositoryRootD:usrlocalSVNRepositoryRootD:u

20、srlocalSVNRepositoryRootD:usrlocalSVNRepositoryRoot displayname=displayname=displayname=displayname= SVN-SVN-SVN-SVN-ServiceServiceServiceService start=start=start=start=autoautoautoauto dependependependepend=d=d=d= TcpipTcpipTcpipTcpip可以有如下几种方式来访问 SVN 服务器:方法模式访问方法file:/直接版本库访问(本地磁盘) 。传智播客 传递 IT 圣火

21、加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)9/37http:/通过配置Subversion的WEB服务服务器的WebDAV协议。https:/与http:/相似,但是包括SSL加密。svn:/通过svnserve服务自定义的协议。svn+ssh:/与svn:/相似,但通过SSH封装。3.2.3.2.3.2.3.2. 建立建立建立建立SVNSVNSVNSVN单仓库单仓库单仓库单仓库创建仓库,也就是创建一个保存你的代码历史版本的目录,有两种方式来创建 SVN 仓库。使用 Subversionbin 目录下提供的命令,运行命令:svnadminsvnadminsvnadmi

22、nsvnadmin createcreatecreatecreateD:usrlocalSVNRepositoryRootD:usrlocalSVNRepositoryRootD:usrlocalSVNRepositoryRootD:usrlocalSVNRepositoryRoot。其中红色部分是要创建的仓库目录名,根据你的要求自己修改,不过得与上一章节把 SVN 加入系统服务中的-r 参数值相对应,不然 SVN 服务启动后访问存在问题。(使用 TortoiseSVN 的命令:自己新建一个目录,在上面点击右键,TortoiseSVN-Create Repository-OK,仓库建好了。 (

23、关于 TortoiseSVN 客户端的使用,将在以后章节详细的讲解)-华丽的分隔线-仓库目录结构说明:dav 目录是提供给 Apache 与 mod_dav_svn 使用的目录,让它们存储内部数据, 我之前使用的版本没有这个目录(与你的 Subversion 安装版本有关系) 。db 目录就是所有版本控制的数据存放文件。hooks目录放置 hook 脚本文件的目录。locks用来放置 Subversion 文件库锁定数据的目录,用来追踪存取文件库的客户端。format 文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。conf 目录是这个仓库的配置文件(仓库的用户访问帐号、权

24、限等) 。传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)10/37-华丽的分隔线-使用上面的方式只创建了一个仓库, 并且以后所有项目的程序都放入一个仓库里面很不便于项目的版本发布及维护项目。自此,在 SVN 服务器上建立一个以项目为划分的多仓库平台是很有必要性的。3.3.3.3.3.3.3.3. 建立建立建立建立SVNSVNSVNSVN多仓库多仓库多仓库多仓库在 server 端,新建一个目录用来存放所有的仓库。比如D:usrlocalSVNRepositoryRoot(先把我们上一步建的单仓库生成的文件给删掉) 。不要在这个目录中创建仓库,然

25、后在这个目录下建立每个项目自己独立的仓库。如:svnadminsvnadminsvnadminsvnadmin createcreatecreatecreate D:usrlocalSVNRepositoryRootD:usrlocalSVNRepositoryRootD:usrlocalSVNRepositoryRootD:usrlocalSVNRepositoryRootitcast_project1itcast_project1itcast_project1itcast_project1 1svnadminsvnadminsvnadminsvnadmin createcreatecrea

26、tecreate D:usrlocalSVNRepositoryRootD:usrlocalSVNRepositoryRootD:usrlocalSVNRepositoryRootD:usrlocalSVNRepositoryRootitcast_project2itcast_project2itcast_project2itcast_project2 依次类推,把每个项目的仓库建立在 D:usrlocalSVNRepositoryRoot 目录之下就OK 了。此时再重新启动 svnserve 服务后, 如果你还是按照 svn:/IP 访问仓库就会发现仓库是空的,因为这时是多仓库了,所以您的项

27、目 SVN 管理 URL 则变为:访问访问 itcast_project1itcast_project1itcast_project1itcast_project1项目的项目的 SVNSVNSVNSVN 仓库:仓库:svn:/IP/svn:/IP/svn:/IP/svn:/IP/itcast_project1itcast_project1itcast_project1itcast_project11访问访问 itcast_project2itcast_project2itcast_project2itcast_project2项目的项目的 SVNSVNSVNSVN 仓库:仓库:svn:/IP/

28、svn:/IP/svn:/IP/svn:/IP/itcast_project2itcast_project2itcast_project2itcast_project2此时,我们只是建立了能存放项目文件的一个仓库,但这个仓库现在还是一个空仓库,总得丢点东西进去吧。也就是导入项目的初使化数据。在将你的数据导入到版本库之前, 首先你得考虑如何组织你的数据。 如果你使用一种推荐的布局,你在后面的操作将会更容易许多。所以尽量按照官方建议的 trunk,传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)11/37tags,branches 的方式来管理,这样

29、后续会方便很多。在客户端任何一个目录新建一个零时的目录,作为 import 的内容,比如C:testImplort,然后在里面建立 branches,tags,trunk 子目录,把你需要进行管的项目文件放入 trunk 目录,注意删除不必要的垃圾文件。则这时你的项目代码的 SVN 地址则变成了:svn:/IP/svn:/IP/svn:/IP/svn:/IP/project/trunkproject/trunkproject/trunkproject/trunk在 C:testImplort目录空白处右击击 Import.,选择 url 为 svn:/IP/rolex,导入。你可以使用仓库浏览

30、器查看导入的效果。 (红色字体的操作部份需要使用到 TortoiseSVN 客户端) ,如果你还没有安装 TortoiseSVN 客户端或不会使用 TortoiseSVN 客户端,则也可以使用 Subersion 提供的命令行方式使用命令来导入数据或到仓库中或导出数据,如:增加文件到版本仓库中:svnsvnsvnsvn importimportimportimport c:/s/2.txtc:/s/2.txtc:/s/2.txtc:/s/2.txt svn:/localhost/svn:/localhost/svn:/localhost/svn:/localhost/trunk/trunk/t

31、runk/trunk/2.txt2.txt2.txt2.txt-m-m-m-m 从版本仓库中导出文件:svnsvnsvnsvn checkoutcheckoutcheckoutcheckout svn:/localhost/svn:/localhost/svn:/localhost/svn:/localhost/trunk/trunk/trunk/trunk/ c:/testProject/c:/testProject/c:/testProject/c:/testProject/注意:由于这里我们还没有为我们的项目仓库配置权限,所以很可能(决对可能)你在执行第一步导入文件到仓库中时,系统就会给

32、报svn: 认证失败的问题。此时,打开你项目仓库所在的文件夹下的 confsvnserve.conf 文件,把默认被注释了的这句# anon-access =read变为anon-access = none即可。该语句具体含义将在下一节马上为你解释。3.4.3.4.3.4.3.4. 配置仓库权限配置仓库权限配置仓库权限配置仓库权限虽然我们现在把SVN服务器端的工作搞得差不多了。 如不知你想过没, 我们的项目SVN的访问却没有任何的限制,也就是说任何人只要知道了我们项目的 SVN 地址则可得到仓库传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)12

33、/37里面的文件数据,一点安全性可言都没。于是,为我们的仓库配置相对的用户访问权限则显得很有必要。进入你某个项目仓库目录下的 conf 目录(以下我们以 itcast_project1 为例) ,你会看到三个文件:authz、passwd 和 svnserve.conf,这些文件就是用来管理 svn 的登录名和相应的用户分组、密码、权限等功能。以下分别是三个文件的配置方法及解说。对 svnserve.conf 文件作如下修改,找到以下四行:#anon-access = read#auth-access = write#password-db = passwd#authz-db = authz将

34、这四行前的“#”号去掉!解说:anon-accessanon-accessanon-accessanon-access指明仓库匿名用户访问的权限,可选值(none:不能访问;read:匿名可读;write:匿名可写) ,一般设置为 none,避免匿名访问,出非你的项目为开源项目。auth-accessauth-accessauth-accessauth-access指明被授权通过的用户的权限,可选值同上。password-dbpassword-dbpassword-dbpassword-db指定了被授权用户的用户名及密码的文件,可以在 passwd 文件中设置用户名与密码。authz-dbau

35、thz-dbauthz-dbauthz-db实现了以路径为基础的授权,也就是判断用户是否有操作对应路径的权限,在Subversion 1.3 之后,svnserve和 Apache 一样都可以使用“authz-db”文件。用支持纯文本文件操作的软件如记事本打开 confpasswd 文件(itcast_project1 项传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)13/37目):打开后如上图所示,默认在users下有两个被注释了的用户信息,可通过去掉注释或自己增加一行用户信息。例如:itcastitcastitcastitcast = =

36、= = lengyulengyulengyulengyu (前面是用户名,后面是密码)(前面是用户名,后面是密码)关于 authz 文件,主要是做复杂的群组权限控制,如 itcast_project1 项目的项目管理员(admin)要求此项目程序开员人员要有代码的读写权限,而项目的老总、策划人员等只能有项目代码的读权限(下载代码)而有写权限(提交代码进仓库) 。同时项目管理员还要求该项目下的 superDoc 目录只有他自己有写权限,其它项目成员都只能为读权限。针对这些需求,我们可以作如下的细化来满足项目管理的需要。打开 confpasswd 文件,添加该项目的所有项目成员帐户信息:传智播客

37、传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)14/37打开 confauthz 文件,所如下图所示的配置即可:“*”代表所有的用户;r 代表读;w 代表写;*= 空代表默认所有用户都没有任何权限。在这几个配置文件中请一定一定一定一定一定一定一定一定要注意空格的问题, 每一行配置的前面不能含有空格, 同时传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)15/37注释也只能单独的放在一行里。4. 4. 4. 4.安装安装安装安装 SVNSVNSVNSVN 客户端客户端客户端客户端( ( ( (Tortoise

38、SVNTortoiseSVNTortoiseSVNTortoiseSVN) ) ) )在老一代使用 SVN 的骨灰级程序员或 Linux 爱好者的 BT 们来说,使用命令行来操作自己所需要的数据是理想的选择,但对现代一切为了效率、用户体验同时技术还不是那么NN 的技术婴儿来看。如果操作 Subversion 没有一套好的图形用户界面(GUI),可想而知是多么的痛苦。为此,TortoiseSVN 应运而生。TortoiseSVN 是 Windows下的 SVN(Subversion)版本控制系统的一个免费开源客户端, 可以超越时间的管理文件和目录。 文件保存在中央版本库(Subversion 仓

39、库),除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。 用户可以将文件恢复到过去的版本, 并且可以通过检查历史知道数据做了哪些修改,谁做的修改。下载下载下载下载TortoiseSVNTortoiseSVNTortoiseSVNTortoiseSVNTortoiseSVN 的官方下载地址是 http:/ ,普通Windows用户下载 32 位软件即可(TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi)(TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi)(TortoiseSVN-1.6.6.17493-w

40、in32-svn-1.6.6.msi)(TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi),下载页面的最下面还有中文语言包(Language packs)提供(LanguagePack_1.6.6.17493-win32-zh_CN.msi)(LanguagePack_1.6.6.17493-win32-zh_CN.msi)(LanguagePack_1.6.6.17493-win32-zh_CN.msi)(LanguagePack_1.6.6.17493-win32-zh_CN.msi),安装完后可以将 TortoiseSVN的界面编程简体中文,需在语言

41、包安装完后任意文件夹下的空白处点击,然后TortoiseSVN-Setting-Language进行设置。传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)16/37传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)17/37在安装过程中,会有一个选择安装目标文件夹的选项,为了统一管理,我这里安装在D:usrlocalSVNTortoiseSVN目录下(与 Subversion 兄弟级)。同时在安装完成后,TortoseSVN 要求重启只是为了跟 explorer 的绑定生效,而为了重启 explore

42、r 去重启计算机显然有点得不偿失。只需打开任务管理器,找到 explorer 进程并结束它,然后点击菜单“文件-新建任务(运行)”,输入 explorer 回车,等一下任务栏出来的时候,一起就都OK 了。360360360360软件宝库:软件宝库:软件宝库:软件宝库:是不是感觉从官网上下载 Subversion 的安装文件过于繁琐, 大量的 E 文让你不知道点哪里下载哪个。 那好吧, 国内 360安全卫士的软件宝库为了省去了找软件的麻烦(顺便给 360打点无补贴的小广告)。传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)18/37Tortoise

43、SVNTortoiseSVNTortoiseSVNTortoiseSVN 使用使用初初初初介介所有的 TortoiseSVN 命令都是通过 windows 资源管理器的右键菜单执行。右键点击一个文件或者文件夹,大多数菜单项都能够直接显示。比较常用的功能是“更新”和“提交”。通过“更新”可以从 SVN 服务器上下载最新的代码,“提交”则可以将本地修改的代码上传到 SVN 服务器上。更为详细的 TortoiseSVN 使用帮助,请参考 TortoiseSVN 中文手册,下面我们介绍几个 TortoiseSVN 常用的功能。1.SVNSVNSVNSVN检出检出检出检出( ( ( (首次从仓库中下载项

44、目首次从仓库中下载项目首次从仓库中下载项目首次从仓库中下载项目) ) ) )在你硬盘的适当的位置(保存项目的文件夹),点击右键,选择 SVN Checkout.传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)19/37然后就会弹出一个 Checkout选项对话框,输入远程项目目录和本地工作目录。点击 OK,就会弹出一个远程服务器要求验证的对话框:传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)20/37当然你首先要成为该项目的授权成员,才能使用该项目的 SVN 服务。输入用户名和密码之后, 点击 O

45、K 就开始下载。 此时你本地的该项目文件夹下的文件就受 SVN 版本控制所管理了。 从中可发现在每一个目录下的文件夹或文件图标被都重载了, 不同的重载图标所表示不同的意义。同时还会在每个文件夹下生成一个以.svn命名的文件夹。SVN 重载图标解义:表示此文件或文件夹与仓库版本同步,本地也没有被修改过。:表示此文件或文件夹在本地被修改过,暂时还没有提交到 SVN 仓库中。在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作复本后被修改过,需要被提交。:如果在提交的过程中出现了冲突图标变成黄色感叹号。:如果你给一个文件设置

46、了 svn:needs-lock 属性, Subversion 会让此文件只读,传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)21/37直到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前先得到一个锁。:如果你拥有了一个文件的锁,并且 Subversion 状态是正常,这个重载图标就提醒你如果不使用该文件的话应该释放锁,允许别人提交对该文件的修改。:这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。:加号告诉你有一个文件或是目录已经被计划加入版本控制。2.SVNSVNSVNSV

47、N UpdateUpdateUpdateUpdate( ( ( (从项目仓库中得到最新版本的文件从项目仓库中得到最新版本的文件) ) ) )一般来说,项目的程序员及相关项目负责人应该随时或每天自少 1 次的习惯从仓库中下载最新的文件到本地来。 这里所谓的最新是指出了你本人之外, 由项目其它人员提交到仓库中的代码。 而从仓库中得到最新版本的项目文件与提交提交提交提交则是相逆的概念。 方式为在该项目文件夹下空白处上右击,然后选择SVN UpdateUpdateUpdateUpdate,如果用户没有保存密码,则此时会要求提供授权用户信息,否则不能下载,出非你的项目是开源能匿名下载的项目。3.SVNS

48、VNSVNSVN C C C Commit.ommit.ommit.ommit.( ( ( (在本地修改项目代码后需提交到仓库中去在本地修改项目代码后需提交到仓库中去) ) ) )如果在你的的项目中受 SVN 版本控制,并在本地有没修改过的而没有提交把项目仓库中,则该文件的图标会变成与一样的的红色标识。这时则表明应该提交该文件到版本仓库中去。提交的方式为在该文件上右击,然后选择SVNSVNSVNSVN UpdateUpdateUpdateUpdate,弹出如下对话框。传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)22/37点击OK按钮,如果此时

49、与服务器网络正常,将提交该文件到 SVN 服务仓库中。4.限制提交限制提交版本时版本时注释的最短长度注释的最短长度TortoiseSVN 中使用 tsvn:logminsize 限制提交注释的最短长度,tsvn:logminsize 设置提交日志的最小长度。如果你输入的日志短于预设值,提交会被禁止。这个属性对于提醒你为每次提交提供一个适当的描述信息非常有用。如果不设置这个属性,或者设置为 0, 那么就允许空提交信息。TortoiseSVN-Properties-New.,如下图所示:传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)23/375.察

50、看仓库所作的修改察看仓库所作的修改当前项目的仓库最新的版本号是多少了?哪些版本号是自己提交的?哪些用户提交了哪些文件上去?每一次提交的文件历史如何来查看?这些都可通过察看仓库日志来得到解决。在项目上右键-TortoiseSVN-Show Log,这样我们就可以看到我们对这个项目所有的提交。传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)24/376.T T T Tortoisesvnortoisesvnortoisesvnortoisesvn 客户端如何检索到指定版本客户端如何检索到指定版本在项目上右键-TortoiseSVN-Update to

51、 revision7. 清清除客户端除客户端 SVNSVNSVNSVN 帐号信息帐号信息在 TortoiseSVN 的设置里面有一个按钮用来清除保存在本地的用户验证信息,点一下传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)25/37OK,重新与 SVN 服务器连接的时候会自动提示输入用户名和密码。在项目上右键-TortoiseSVN-Settings-Saved Data-Authenticationdata-Clear8.svnsvnsvnsvn 提交时设置文件类型过滤提交时设置文件类型过滤在用 svn 管理版本时,有时希望在提交到服务器时,

52、能过滤掉指定后缀名的所有文件,或指定名称的文件夹、文件名,我们可以在 svn 的 settings 里面这样设置:传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)26/375. 5. 5. 5.SVNSVNSVNSVN 与与与与 EclipseEclipseEclipseEclipse 整合整合整合整合eclipse 默认不带 svn 支持,可以使用 svn 插件来使 eclipse 支持 svn 支持。官方有在线安装说明,这里就不进行介绍了个人习惯问题,比较喜欢绿色插件式的安装方式。所以采用 link 方式加载。1.下载 SVN 插件(http

53、:/subclipse.tigris.orghttp:/subclipse.tigris.orghttp:/subclipse.tigris.orghttp:/subclipse.tigris.org)找到符合自己 eclipse 版本的插件的下载地址,我这里下载的是 eclipse_svn_site-1.6.5.zip。传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)27/372.把下载下来的压缩文件 eclipse_svn_site-1.6.5.zip 解压到一个文件夹中,如:D:usrlocaleclipse_pluginssvneclip

54、se 文件夹下。3.进入 eclipse 安装目录中的 dropins 文件夹,创建一个 subclipse.link 的文本文件(文件名任意)。内容为:path=D:/usr/local/eclipse_plugins/svn/eclipsepath=D:/usr/local/eclipse_plugins/svn/eclipsepath=D:/usr/local/eclipse_plugins/svn/eclipsepath=D:/usr/local/eclipse_plugins/svn/eclipse4.重启 eclipse,久违的 svn 已经出现。传智播客 传递 IT 圣火 加入传

55、智播客 畅想美好未来(Http:/www.Itcast.Cn)28/37如果我们以从 eclipse 中删除的话,只需将 subclipse.link 的相关文件删除即可。6. 6. 6. 6.SVNSVNSVNSVN 与与与与 MyEclipseMyEclipseMyEclipseMyEclipse 整整整整合合1、打开 MyEclipse 6.5,Help Software Updates Find and Install.,在弹出的菜单中选 Search for new features to install next New Local Site. 找到下载的SVN 插件解压出来的文件

56、夹(subclipse-1.6.5) 确定 Finish,在弹出的菜单中,Select the features to install: 在刚加进去的 路径/site-1.6.5 这一项前打钩,此时会报错,然后点开 Subclipse 前的加号,去掉 Subclipse Integration for Mylyn 3.x(Optional)3.0.0 前的勾,错误消失 next 选 I accept the terms in the licenseagreements next next 选中所有的8项,然后 Change Location.,在弹出的菜单中选 Add Location.,选择

57、在第2步中建的文件夹的路径(C:Program FilesMyEclipse6.5eclipseplug-insite-1.6.5) Finish 在弹出的菜单中选 Install All Yes;2、完成第3步后,MyEclipse 会重启,Window Show View other 选择打开SVN 目录下的 SVN Repositories;3、可以正常使用 SVN 插件了。传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)29/377. 7. 7. 7.SVNSVNSVNSVN 服务端服务端服务端服务端与与 Apache2.2Apache2

58、.2Apache2.2Apache2.2集成集成一、下载一、下载一、下载一、下载 Apache2Apache2Apache2Apache2 安装文件安装文件安装文件安装文件首先,要下载 Apache2.2:http:/httpd.apache.org/download.cgi进入下载页面后有 no ssl 及 open ssl 二种版本,在此以 no ssl 的版本为例,下载apache_2.2.13-win32-x86-no_ssl.msi 这个档案:二、安装并配置二、安装并配置 ApacheApacheApacheApache上述 3 个档案下载完毕后,接下来就是安装啦,1. 执行 apa

59、che 安装程式, 填入 Network Domain、 Server Name 及 Email 资料,在最下方选择端口时有 2 个选项,可使用预设 Port 80,在此以预设值进行安装。同时安装路径最好自定义,选择安装在非 C 盘的路径下.传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)30/372. 打开 Apache 安装目录下 Apache2.2confhttpd.conf 配置文件,将下列 2 行前方的#移除(第 83 行):LoadModule dav_module modules/mod_dav.soLoadModule dav_f

60、s_module modules/mod_dav_fs.so3.找到 Subversion 安装目录下的以下文件,复制到 Apache 安装目录下 modules目录中。bin/mod_authz_svn.sobin/mod_dav_svn.so4.并在上面被先移除注释(#)的两行下面增加以下两行:LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so注:这 2 行切记一定要放在被解冻注释了那两行 mod_dav_svn.so 之后。5.使用 Apa

61、che 安装目录下的 bin/htpasswd.exe 可执行文件来生成授权文件,第一次生成使用 -cb 参数:htpasswd -cb filename username password传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)31/37例如:htpasswd -cb passwd.apache lengyu1 lengyupsd添加新用户,使用 -b 参数:htpasswd -b passwd.apache lengyu2 lengyupsd将生成的 passwd.apache 文件移动到D:usrlocalSVNRepository

62、Rootitcast_SSHconf 目录下。6.在 apache 安装目录下的 confhttpd.conf 文件的最后面加入:#配置虚拟目录#引用远程访问模块DAV svn#项目版本库路径#SVNPath D:/usr/local/SVN/RepositoryRoot/itcast_SSH#授权文件#AuthzSVNAccessFileD:/usr/local/SVN/RepositoryRoot/itcast_SSH/conf/authz#所有用户都需要身份验证#Satisfy AnyRequire valid-user#验证方式#AuthType Basic#项目的名称#AuthNam

63、e itcast_SSH#用户文件#AuthUserFileD:/usr/local/SVN/RepositoryRoot/itcast_SSH/conf/passwd.apache7.配置多项目传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)32/37在 httpd.conf 文件末尾增加下面一句,作用是引用指定目录下的所有 project 文件,这样即可达到使用 Apache 来管理多个SVN仓库的目的。#引用指定目录下的所有 project 文件#Include D:/usr/local/SVN/RepositoryRoot/conf/*.

64、project然后在指定目录,这里是D:/usr/local/SVN/RepositoryRoot/conf中创建单个其它的 SVN项目配置文件 xxxxxx.project (文本文件 xxxxxx.project中的内容格式同第6步骤完全一致) ,如果需要再增加一个新的项目SVN仓库,则继续在RepositoryRoot/conf 目录下创建 project 文件,并根据需要更改虚拟目录路径以及授权文件名称即可,记住,此时完成之后一定要记得重启Apache服务。三.配置配置 SVNSVNSVNSVN仓库仓库找到你项目 SVN 仓库版本库目录下的配置文件,例如:D:/usr/local/SV

65、N/RepositoryRoot/itcast_SSH将 passwd 文件改名为 passwd.svn(也可以不改名,这里是为了结构更清晰)用文本编辑器修改 svnserve.conf 文件,找到以下两行:#password-db = passwd.#authz-db = authz修改为:password-db = passwd.svn.authz-db = authz这里 authz 就是授权文件的名称,在 Subversion 和 Apache 中可以使用相同的授传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)33/37权文件,但无法使用

66、相同的 passwd 文件,因为 Apache 是以加密方式存储密码,而Subversion 使用明文储存密码,所以上面将 Subversion 生成的 passwd 文件改名,说明其仅用在 Subversion 下。如何配置授权文件不再详述,请自行查看授权文件中自带的注释,已经解释的非常清晰, 或者看本教程前面章节的内容。警告:警告:警告:警告:如果你在确认你的配置完全没有错误的情况下,使用 WIN 服务方式启动 Apache后 WIN 事件日志出现如下的错误:事件类型:错误事件来源:Apache Service事件种类:无事件 ID: 3299日期:2009-10-28事件:18:23:3

67、0用户:N/A计算机:CDY描述:The Apache service named reported the following error: Cannot load D:/SVN/Apache2.2/modules/mod_dav_svn.so intoserver:xd5xd2xb2xbbxb5xbdxd6xb8xb6xa8xb5xc4xc4xa3xbfxe9xa1xa3.解决办法为:把 SVN/bin 目录下所有 DLL 全复制过去,问题解决,经过筛选发现有几个 DLL 冲突,传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)34/37apa

68、che/bin/*.DLL 最终列表:-, 需要删除的:+.从 Subs 复制过来的?,未知,可以不要-libapr-1.dll-libapriconv-1.dll-libaprutil-1.dll+libdb44.dll+libsasl.dll+ssleay32.dll?intl3_svn.dll四四. . . .访问访问如果在局域网中,那么可以输入“http:/localhost/itcast_SSH”即可访问版本库。如果远程访问 Apache 服务器, 那么可以在浏览器或客户端软件中输入“http:/yourdomainor IP/svn/itcast_SSH”即可访问 itcast_S

69、SH 项目。8. 8. 8. 8.GoogleGoogleGoogleGoogle CodeCodeCodeCode 托管托管托管托管SVNSVNSVNSVN如果你没有一台稳定的公网服务器,个人 PC 又不能 24 保持着待机状态,并且你的项目又是能开源的项目, 那么笔者强烈建议你拥抱伟大的 Google 吧, 友善的它为我们免费提供了 SVN 服务器,你只需要有 gmail 帐号即可。1. 进入 http:/ 用 Google 帐户登录(推荐使用 gmail邮箱) 。然传智播客 传递 IT 圣火 加入传智播客 畅想美好未来(Http:/www.Itcast.Cn)35/37后点击Projec

70、t Hosting2. 进入 http:/ anew project3. 填入信息:写入项目名,描述,两个选择项,写入标签,点击确定。就可以了4. 提交成功后,选择菜单的 Source(其中有 https 上传协议路径需要拷贝一份,还有一个上传密码(这个密码是 GG 动态为你生成的) ) 。5. 打开 Eclipse,打开需要上传的项目,点鼠标右键-team-share Project-svn,写入 https 路径,下一步,输入 Google 账号和上传密码,起个名,finish。6.如果一切顺利,会自动生成一个项目目录,可以查看所有项目文件。然后进入搭建项目界面,点鼠标右键-team-commit。然后开始上传项目。7,搭建完成。8.如果想查看自己的项目,可以用浏览器登陆 https 的路径,输入 Google 账号和上传密码,如果成功就可以看到含有项目名称的目录。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号