svn从入门到精通
版本控制工具 SVN从入门到精通为什么要使用版本控制工具? 在多人协作开发软件的时候,经常出现员 工A的代码被员工B覆盖,或者今天做了小 修改明天却发现需要把代码改回去,版本 控制正是为此而诞生的,它是软件开发团 队高效协作的重要管理工具。 简单来说,版本控制服务器是一个特殊的 文件服务器,不仅控制用户对文件的读取 、写入等操作,更记录了每一次修改的内 容。常用的版本控制工具 VSS.(Visual SourceSafe ). 简单易用、方便高效、与Windows操作系统及 微软开发工具高度集成。 CVS.(Concurrent Versions System). 是开发源码的并发版本系统,它是目前较流行的 面向软件开发人员的源代码版本管理解决方案 。它可用于各种平台.诞生于 1986 年 。 SVN.(Subversion) CVS的替代品.保留CVS的基本特性但去处CVS 的bug和不好的特性。SVN简介 Subversion是在CVS基础发展而来的, 2000年的时候,CollabNet公司的协作软件 采用CVS作为版本控制系统,因为CVS本 身一些局限性,从而需要一个代替品,然 后邀请了Karl Fogel(Open Source Development with CVS)参与开发,14个 月后,2001年8月31日,新的版本管理系统 Subversion诞生,开始不再用CVS进行版 本管理,而使用自己管理自己了.SVN原理 Subversion是一个自由/开源版本控制系统 ,它管理文件和目录可以超越时间。一组 文件存放在中心版本库,这个版本库很像 一个普通的文件服务器,只是它可以记录 每一次文件和目录的修改,这便使你可以 取得数据以前的版本,从而可以检查所作 的更改。从这个方面看,许多人把版本控 制系统当作一种“时间机器”。 使用SVN所需的工 具 1、CollabNetSubversion-server-1.5.6- win32.exe :SVN服务器 2、TortoiseSVN-1.6.1.16129-win32-svn- 1.6.1.exe : SVN客户端 3、LanguagePack_1.6.1.16129-win32- zh_CN: SVN客户端中文语言包 4、eclipse插件或者VS2008插件.使用步骤一:安装SVN服务器 点击SVN安装包,一直下一步: 出现右侧界面,只选一个. Apache服务器主要用于 管理其它服务。如mysql Sqlserver,oracle,及其它 Aptech的相关产品,所以 可以不用安装.切记:只选第一个! 进入下一步,指定版本仓库 路径,端口默认。切记:路径要手工指定 到已存在路径!使用步骤二:安装SVN客户端工具 点击安装” TortoiseSVN-1.6.1.16129-win32- svn-1.6.1”.提示重启电脑,但可以不用重启。 在局域网内任一台电脑上只要安装了这个客 户端,都可以从SVN服务器上获取代码等相 关操作。使用步骤三:安装中文插件包 点击安装LanguagePack_1.6.1.16129- win32-zh_CN.exe. 对于英文不好的人来讲,是一种福音,建 议刚开始时用中文,等以后差不多了,再 用英文。使用步骤 四:创建版本仓库 在安装SVN服务器时,我们已指定了版本 仓库存放的位置在D:/MySVN文件夹,我们可 以在此文件夹内创建并管理多个工程的版 本库。 因SVN客户端版本问题,所以我们需要在 命令提示符窗口下cmd cd D:/MySVN - >svnadmin create 版本库文件名. 将会在文件夹内 自动生成版本库。使用步骤 五:添加用户和密码 为实现共享信息的安全,此时可添加对应的用户和密码,默 认情况下,任何人都可以从服务器上检出代码。 打开” D:MySVNdemoconfpasswd”文件,进行修改,如下 将: users # harry = harryssecret # sally = sallyssecret 改为: 用户名=密码 的形式,并且去掉#号(注释)和空格。 users accp=accp bird=bird aaa=aaa使用步骤 六:对用户进行授权多个协同开发项目时,分别要为不同的人授不同的权限,SVN提供了 这个功能。以便对代码进行管理。 可以将权限给某个组,或者某个人。 打开” D:MySVNdemoconfauthz”文件,进行修改,如下将: groups # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,设置为 none 限制访问; read 为只读;write 为具有读写 权限; password-db :定义保存用户名和密码的文件名称 realm = 版本库名称,定义客户端连接是的“认证命名空间”。本例为 demo使用步骤 八:将工程添加到版本 库 按以下操作,将工程纳入版本库管理。 注意检出的协议不是http,而是svn:/服务器地 址/库使用步骤 九:从版本库中检出工 程 右键单击,将工程可以从服务器中检出到任 一路径。使用步骤 十:将修改后的代码提交到服务器 向已检出的工程中添加文件,并提交到服务 器,再次检出,发现可以成功修改为新版本 。试试用不同权限的人检出工程,并修改工程,有效果吗?英文常用操作释义1、Check out从服务器端取得代码 把服务器资料库里存放的某个项目代码取出来,放到本地主机中, 这个动作叫做“check out”。使用具体步骤:进入要安装项目文件的目 录中,点击鼠标右键,选择SVN Check out项,然后填写项目的原始 路径和安装路径后点击“ok”即可。 2、Update更新项目代码 以前checkout过的一个项目代码,当服务器上有了更新的代码,或 者本地代码损坏或丢失,update可以自动判断本地哪些文件较旧, 或者缺少,都会自动更新。当然,你也可以删除掉本地代码,重新 check out。使用具体步骤为:在要更新的项目上点击鼠标右键,选 择“SVN Update”项即可。 3、Commit将本地代码上传到服务器 当修改(增加,删除,修改等所有写操作)过本地代码后,这个动 做会把新代码提交到SVN。如果本地代码做了修改,不执行commit 操作,SVN服务器上是不会有这个新版本的,也就是说其它人也得 不到。对代码做过修改后,应尽快commit。使用具体步骤:在修改 完待上传的项目上点击鼠标右键,选择“SVN Commit”项即可。4、Export将项目导出到本地 如果想要得到一个完整的项目,且不需要再进行版本的改动,可以直接把该 项目导出版本控制系统,成为一个普通文件进行使用。具体步骤为:单击鼠 标右键,选择TortoiseSVN>>Export项,然后填入要导出的项目既可。5、Show Log显示所有版本 如果项目成员想查看本地下载的属于版本控制内的某个项目以前的所有版本 ,就在该项目上单击鼠标右键,选择TortoiseSVN菜单下的Show Log项。则 该项目的所有版本及其每个版本的修改信息都将显示在出现的新对话框下, 供项目成员进行参考。6、Update To Revision恢复到某个版本 当项目成员想要把某个项目恢复到以前的某个版本时,在该项目上单击鼠标 右键,选择TortoiseSVN菜单下的Update To Revision,于是,在出现的 Update对话框中可以先点击“Show Log”来查看及确定要恢复到的版本号, 或者直接将要恢复到的版本号填入“Revision”旁的编辑区内,最后点击“OK” 。于是,该项目就恢复到想要的项目版本了。 7、Add增加文件 当项目成员想在项目中添加一个新文件时,请把该文件先拷贝到项目文件加 下,然后,在该文件上单击鼠标右键,选择TortoiseSVN菜单下的Add项, 于是,该文件就可以被添加到项目中了。 注意:commit后才上传到服务器。Myeclipse中SVN插件使用 前面所介绍的SVN客户端通用于任一种语 言的开发工具,实际上,SVN中还提供了 与Myeclipse的集成,更加方便于javaEE工 程的管理。 将” eclipse插件”内的插件包覆盖myeclipse 安装目录下eclipse文件夹内对应插件。重 启Myeclipse.VS2008中SVN插件使用 在Visual Studio 2008里面,我们可以使用 AnkhSVN 2.0插件,该插件支持Visual Studio 2008,目前的最新版本是 AnkhSvn- 2.0.6347.433.msi.不同版本间的文件代码比较 借助检出的代码,可以对两个文件的不同版 本进行比较。项目中的高级运用 在实际的项目开发过程中,对于角色及权 限控制非常严格,会有很多细节要考虑。 示例:0905-java权限。 要注意:JAVA的字节码文件不能提交到版 本库中,.NET的二进制文件不能提交到版 本库中,在提交前都必须先删除。总结 SVN的作用 使用SVN管理项目作业 1.在自己机器上安装SVN1.5版服务器和小 海龟客户端工具。 2.练习从本地服务器上“借(检出)工程”及“提 交工程”。 3.分别以项目组成员为服务器,练习“借(检 出)工程”及“提交工程”。 4.分方向使用MyEclipse插件及VS2008插件 。在集成开发环境中练习“借(检出)工程”及“ 提交工程”。