svn图文教程-宋正河整理
- 格式:pdf
- 大小:1.34 MB
- 文档页数:17
Subversion版本控制工具图解教程(初稿)易文龙编写QQ:452070E-Mail:jxbks@Subversion版本控制1.概述1.1什么是版本控制版本控制(Revision control)是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。
版本控制透过文档控制(documentation control)记录程序各个模组的改动,并为每次改动编上序号。
这种方法是工程图(engineering drawings)维护(maintenance)的标准做法,它伴随着工程图从图的诞生一直到图的定型。
一种简单的版本控制形式,例如,赋给图的初版一个版本等级“0”。
当做了第一次改变后,版本等级改为“1”,以此类推等等。
1.2 什么是 SubversionSubversion是一个免费开源的版本控制系统。
即在它的管理下,文件和目录可以跨越时空,允许你的数据恢复到早期版本,或者是检查数据修改的历史。
正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。
Subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。
从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。
因为修改不再是单线进行,开发速度会更快。
此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量—如果出现不正确的更改,只要撤销那一次更改操作即可。
1.3 常见的版本控制系统2.VSS:Visual Source Save,微软公司的版本控制器软件,/zh-cn/vstudio/aa718670.aspx3.CVS:Concurrent Versions System,开源免费,/cvs/4.Subversion,开源免费,/5.ClearCase,IBM公司,/software/awdtools/clearcase/2.基本概念版本控制工具并非程序员专用,它可以管理任何类型的文件。
目录1.修改SVN访问密码 (1)2.SVN客户端使用说明 (2)2.1.安装SVN客户端 (2)2.2.迁出配置库内容 (3)2.3.维护工作文件 (4)2.3.1.增加文件 (4)2.3.2.更新文件 (8)2.3.3.删除文件 (9)2.3.4.修改文件 (10)2.3.5.比较版本差异 (10)2.3.6.撤销更改 (13)2.3.7.锁定和解锁 (13)2.3.8.重命名文件 (14)2.3.9.获取历史文件 (14)2.3.10.检查冲突 (15)2.3.11.解决冲突 (16)2.3.12.忽略无需版本控制的文件 (16)2.3.13.去除SVN标志 (17)2.3.14.查看文件每行的修改信息 (17)2.3.15.重置访问路径 (18)2.3.16.本地路径转换 (18)2.4.浏览版本库 (18)2.5.建立标签 (19)2.6.建立分支 (19)2.7.清除用户名等信息 (20)2.8.统计信息 (21)3.MYECLIPSE集成SVN (23)3.1.安装SVN插件 (23)3.2.配置M Y E CLIPSE提交目录 (28)1. 修改SVN访问密码打开IE,在地址栏中输入地址:http:// /svnmanager/index.php,进入SVNManager的欢迎界面,如下图所示:点击“登陆”按钮进入登陆界面,如下图所示:输入已知的用户名和密码,点击“登陆”按钮进入用户管理界面,点击“用户管理”按钮显示“编辑用户”菜单,如下图所示:点击“编辑用户”按钮,进入用户信息修改界面,如下图所示:在上图界面的“新密码”和“重复新密码”框中输入你设定的新密码,两框中的密码要保持一致。
在“当前用户密码”框中输入你的先前的登陆密码,。
点击“确定”按钮修改密码,后返回到编辑用户成功界面,在此界面中点击“退出”按钮完成此操作。
再次可使用新密码进行登陆。
2. SVN客户端使用说明2.1. 安装SVN客户端安装SVN客户端(我公司使用的SVN客户端为TortoiseSVN-1.4.8.12137-win32-svn-1.4.6):双击安装包→Next→选中“I accept the terms in the license Agreement”→Next→Install→选中“Show Changelog”→Finish→点击“Yes”按钮重新启动电脑。
1>使用SVN清理工具时,需将要清理的目录的只读项去掉.
2>使用SVN管理项目的步骤:
1:安装服务端和客户端管理工具(服务端和客户端工具不同)
2:在服务端工具中建理管理目录和管理用户
3:将项目添加至服务端管理工具中
添加方式有两种:
1:直接在Windows资源管理器中选择需管理的项目,然后选择”导入”,这样做会把目录中所有文件都上传到服务端管理工具中(也可选择上传).如下图
2:在VS编辑工具中选中解决方案,这样做只会将.CS文件和一些属性文件放入管理器中,debug下的.dll文件不会放入管理器中,然后再Update Changes就可以上传项目了:如下图
客户端管理:
1>将项目从服务端下载到客户端,方法如下:
2>在本地新建一个空文件夹,然后将服务端项目”检出”至本地。
SVN搭建参考手册【详细说明+图片】一、SVN 服务器和客户端安装安装服务器程序运行服务端程序VisualSVN-Server-1.6.4.msi,根据提示安装即可,这样我们就有了一套在服务器端运行的环境。
安装客户端程序TortoiseSVN运行TortoiseSVN-1.6.4.16808-win32-svn-1.6.4.msi按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。
安装客户端语言包运行LanguagePack_1.6.4.16808-win32-zh_CN.msi注意:上述服务端和客户端程序均为开源软件,在使用过程中注意两者版本的统一二、SVN 创建版本库多库管理模式SVNROOT为版本库的根目录,wendang为文档管理版本库、sourcecode为为各系统代码管理版本库。
VisualSVN-Server提供了一个可视化的控制台,通过它我们可以方便的完成版本库的创建和权限的分配工作。
1. 启动VisualSVN Server Manager,在VisualSVN Servers上右键选择Properties2. 在弹出的界面上设置版本库的根位置,设置完毕后会重新启动相关服务3. 在VisualSVN Servers上右键选择Creat New repository ,创建新的版本库,并在文本框中输入库名称上图中的CheckBox如果选中,则在库test下面会创建trunk、branches、tags 三个子目录;不选中,则只创建空的版本库test。
(注:VisualSVN Server Manager不支持对目录下文件的创建和删除操作,这项工作需要借助Tortoise SVN来完成)三、SVN 安全配置用户设置1. 启动VisualSVN Server Manager,右键点击界面上的Users文件夹,选择create user2. 在弹出的Users设置界面上添加新的用户和密码用户组设置1. 在VisualSVN Server Manager上右键点击界面上的Groups文件夹,选择create Group2. 在弹出的Gruop设置界面上添加新的组和组成员安全性设置1. 在版本库中选择一个库,右键选择Properties2. 点击上图中的"Add..."按钮,在下图中选择我们刚才添加的用户,点击OK按钮3. 按照下图所示,分别对用户或组进行授权在线修改密码1. 在安装目录(如C:\Program Files\VisualSVN Server\)的bin文件夹下增加alias.so、mod_cgi.so两个文件2. 在安装目录中增加cgi-bin文件夹,其中包含svnpass、svnpass.ini两个文件,修改svnpass.ini中pwdFilePath地址的指向为版包库中密码存放的文件,例如:pwdFilePath=D:\Repositories\htpasswd3. 修改安装目录中conf文件夹中的httpd-custom.conf,增加如下内容:LoadModule alias_module bin/mod_alias.soLoadModule cgi_module bin/mod_cgi.so<IfModule alias_module>ScriptAlias /cgi-bin/ "C:/Program Files/VisualSVN Server/cgi-bin/"</IfModule>4. 修改安装目录中htdocs文件夹的部分内容注意:上述所需文件参见SVN中相关附件5. 用户通过URL访问版本库,在验证通过后就能完成密码的在线修改四、SVN 备份恢复机制出于资源安全性考虑,为了防止由于配置管理服务器硬件或者软件故障,而导致配置库资源丢失且无法恢复的情况发生,需要对配置库资源进行定期的备份。
SVN 操作手册安装SVN安装前的准备服务端VisualSVN-Server-1.0.3.msi客户端TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi 安装服务端安装1双击打开VisualSVN-Server-1.0.3.msi点击Next 进入下图选中I accept the terms in the license Agreement 点击Next 进入下图2选择安装路径选择Next 进入下图选择Install 进入下图上图表示正在安装,安装过后进入下图选择Finish 安装安成上图显示的就是安装完以后的SVN服务端安装客户端安装1 双击打开TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi 2点击Next进入下图3选中I accept the terms in the license Agreement 点击Next 进入下图4 点击Next 进入下图5 点击Install 进入下图6. 安装完成。
重新启动电脑7,安装完成如下图配制SVN 服务端操作1.打开服务端开始→程序→如下图点进击后进入下图2创建工程输入名称然后确定3创建用户进入下图选项进入后如下图单击add 进入下图点击Create user …进入下图输入用户名密码及确认密码,点击Create 用户建立完成. 进入下图点击ok 进入下图点击ok 创建用户,所有操作完成.客户端操作1初始化版本库进入下图选择类型点击ok 进入下图. 上图表示导入完成2导入项目2. 1项目右击2.2 点击Import 进入下图2.3输入用户名及密码2.4 点击ok后,会显示下图,表示正在导入中。
2.5 下图表示安装完成2.6点击ok 此时导入结束.3导出项目3.1在存放导出的文件夹上,右键单击3.2 点击进入下图3.3 点击ok 进入下图3.4 导出完成后。
进入下图表示:客户端版受本控制的文件及目录与svn服务端版本一至。
SVN分支与合并一、分支与合并的概念二、SVN分支的意义三、如何创建分支与合并分支一、分支与合并的概念:分支:版本控制系统的一个特性是能够把各种修改分离出来放在开发品的一个分割线上。
这条线被称为分支。
分支经常被用来试验新的特性,而不会对开发有编译错误的干扰。
当新的特性足够稳定之后,开发品的分支就可以混合回主分支里(主干线)。
合并:分支用来维护独立的开发支线,在一些阶段,你可能需要将分支上的修改合并到最新版本,或者将最新版本的修改合并到分支。
二、SVN分支的意义:简单说,分支就是用于区分开发版本与当前发布版本的。
1、主干负责新功能的开发2.、分支负责修正当前发布版本的bug(对于可以放入下个发布版本的改进性bug可以直接在主干上开发)3.、分支上修改的bug,经常性merge到主干上,尽量及时merge(避免大面积红色区域)。
4.、只能分支往主干靠拢(merge),不能反向!5.、直到下个新版本发布,该分支停止修改三、如何创建分支与合并分支:1、首先要在你的版本库存里创建主干目录,通过版本库浏览器,如图1所示:(图1)2、输入版本库URL地址,如图2所示:(图2)3、进入版本库浏览器主目录,如图3所示:(图3)4、创建主干目录,如图4所示:(图4)5、主干目录(trunck),如图5所示:(图5)6、把你要加入版本控制的文件加入主干,如图6-8所示:(图6)(图7)(图8)7、从主干里检出文件到你的本地工作副本上,如图9-10所示:(图9)(图10)8、选择你要创建分支的工作副本,如图11所示:(图11)9、在“至URL”里填写版本库中要存放分支的目录,如图12-13所示:(图12)(图13)注意:这时候工作副本对应版本库的路径仍为原来对应的主干的目录。
10、再从分支里检出内容到本地目录上,如图14-15所示:(图14)(图15)11、打开刚从分支里检出的工作副本目录,修改里面的test.txt文档并提交,如图16-17所示:(图16)(图17)注意:这时提交的修改只会提交到分支上,并不会更改主干上的内容。
Tortoise SVN 快速操作手册1.库的存储结构版本库文件结构如图所示:Code文件夹为源码文件夹,doc为文档目录文件夹,1.1 branch:分枝文件夹当多个人合作,可能有这样的情况出现:John突然有个想法,跟原先的设计不太一致,可能是功能的添加或者日志格式的改进等等,总而言之,这个想法可能需要花一段时间来完成,而这个过程中,John的一些操作可能会影响Sally的工作,John从现有的状态单独出一个project的话,又不能及时得到Sally对已有代码做的修正,而且独立出来的话,John的尝试成功时,跟原来的合并也存在困难。
这时最好的实践方法是使用branch。
John建立一个自己的branch,然后在里面实验,必要的时候从trunk里取得更新,或者将自己的阶段成果汇集到trunk中。
1.2 tag: 标签在经过了一段时间的开发后,项目到达了一个里程碑阶段,你可能想记录这一阶段的代码的状态,那么你就需要给代码打上标签。
1.3 trunk:主干主干,一般来说就是开发的主要呆的地方,比较稳定的发布版本一般放这个地方。
文档等文件放入doc文件夹中。
branch文件夹开发人员可读可写,测试人员可读。
新功能开发或者bug修复完毕,经过单元测试无误后,提交申请,由项目经理合并进主干线路。
tag文件夹,由项目经理在固定时间间隔备份trunk文件夹,项目经理可读写,开发人员可读,测试人员可读。
当开发人员通过分支或者打补丁的形式修复bug后,由项目经理合并进主干线路。
2.基本操作2.1 搭建一个工作环境新建一个空白文件夹检出版本数据库数据。
选择svn检出输入版本库主干目录的url地址,https://192.168.10.100/svn/project/code/trunk,导出版本库文件。
并设置检出目录地址。
D:\soft\sample点确定继续点击“总是接受”。
输入用户名,密码。
版本库检出成功,如上图所示,绿色勾表示状态正常,其他图列示意请参考附录A:强制写log为保证版本库有良好的可读性,须设置在每次更新或者修改文件版本时,必须设置其属性为强制写log。
SVN目录,文档存放位置详细说明01-Workspace -----------------------工作区01- M anagedoc ----------------------管理文档01- PM --------------------项目研发管理01-Plan---------------------------------------------------项目策划表、项目主计划、项目主计划评审报告02-ChangeManage-------------------------------------项目变更单03-Milestone--------------------------------------------项目管理表、S模型迭代报告04-Meeting&Weekports-------------------------------会议和周报01- Meetings --------------------------会议纪要02- WeekReports -----------------------项目周报05-PMTrace---------------------------------------------其它文档02- QM ----------------------项目质量管控01- QAplan--------------------------------------------质量保证计划02- STplan--------------------------------------------系统测试计划03- ST01- TestDesign -------------------------系统测试用例、性能测试需求评审报告、易用性评审报告02- TestDevelop ----------------------系统测试报告04-preReviewReportsSRS ----------------------------------------软件软件需求预审报告TestCase -----------------------------------系统测试用例预审报告03- CM ---------------------配置管理01- CMaudit------------------------------------------配置库权限表、配置库备份记录表、配置项状态表02- CSAreport----------------------------------------配置管理周报03- ChangeManage--------------------------------项目变更一览表02- E ngineeringdoc -----------------工程文档01- RM -----------------------需求01-UserRM---------------------------------------------用户需求与立项表02-ProdRM---------------------------------------------可行性分析、总体方案、产品规划书、产品需求说明书、原型demo03-SRS-------------------------------------------------软件设计说明书、软件设计说明书评审与验证报告、product backlog、user story 02- Design -----------------------设计01- ArchDesign---------------------------------------架构设计说明书、架构设计说明书评审与验证报告02- SysDesign----------------------------------------系统设计说明书、系统设计说明书评审与验证报告03- DBdesign-----------------------------------------数据库设计说明书、数据库设计说明书评审与验证报告03- BasTest&CodeReview ----------单元测试和代码评审01- BasTestReports---------------------------------单元测试02-CodeReviewReports------------------------------代码评审报告04- Deploy -----------------------项目实施01- Plans&Reports----------------------------------实施计划、实施报告02- Deploydocs--------------------------------------其它实施文档03- Mamuals-----------------------------------------实施手册(安装手册、使用手册)03- S ource --------------------------源码01- EnvironmentAbout ---------------开发环境02- SourceCode -------------------源代码02-Baseline -------------------------基线区01- PlanLines -----------------------计划基线02- RequireLines -------------------需求基线03- DesignLines --------------------设计基线04- CodeReview -------------------代码评审工作区03-Test ------------------------------测试区04-Release -------------------------发布区01- Version --------------------------版本01-Relationdocs ----------------------发布单、发布清单02-ReleasePackages ---------------发布包02- ResultsItems -------------------项目总结报告、结项报告03- Outside --------------------------外发包05-TestPrepare -------------------提交测试包、外发包、提交测试标签记载06-WorkTags ----------------------代码标签区。
目录第一章引言 (1)1.1Subversion的介绍 (1)1.2Subversion的特性 (1)1.3SVN链接模式 (2)1.4SVN操作流程 (2)第二章SVN使用 (4)2.1SVN软件安装 (4)2.2事业部SVN库介绍 (4)2.2.1事业部SVN库 (4)2.2.2帐号注册、权限申请 (5)2.3基本操作 (5)2.3.1操作介绍 (5)2.4系统规范使用 (19)2.4.1规范操作 (19)2.4.2版本控制的使用 (20)2.4.3与目录无关内容 (21)2.4.4文件夹目录名称规范 (22)2.4.5文件上传格式 (23)2.4.6文件、数据放置 (23)2.5日常使用问题 (23)2.5.1版本库无响应 (23)2.5.2邮件中的路径链接 (23)2.5.3系统库最上层打不开 (24)2.5.4提交失败(Commit fail) (24)2.5.5SVN文件夹无法下载 (25)2.5.6特征图标的显示 (25)2.5.7冲突问题解决 (26)第三章权限申请流程 (29)3.1权限定义 (29)3.2申请流程 (29)3.2.1普通权限申请 (29)3.2.2单位权限申请 (29)3.2.3特殊权限申请 (30)3.3表单使用 (31)附录 (1)参考文献 (6)SVN使用规范第一章引言1.1Subversion的介绍SVN是Subversion的缩写。
Subversion管理随时改动的文件和目录,以二进制格式存储所有的文件,使用高效的比较二进制差异算法来计算版本之间的改动。
同时,它是一个时间机器,随时记录文件和目录的每次改动,例如:文件的增加、删除、重新排列文件等。
同时SVN允许你恢复以前旧版本的数据,或者检查数据变化的历史。
SVN使用类似数据库事物的方式来处理用户提交入库的过程,整个改动要么成功的被提交,要么被中断并回滚。
在数据提交完之前,其他人是看不到用户提交的修改文件,你看到的要么是改动之前的状态,要么是改动之后的状态。
SVN操作手册1、关于SVN有一个简单但不十分精确比喻:SVN = 版本控制+ 备份服务器简单的说,您可以把SVN当成您的备份服务器,更好的是,他可以帮您记住每次上传到这个服务器的档案内容。
并且自动的赋予每次的变更一个版本。
通常,我们称用来存放上传档案的地方就做Repository。
用中文来说,有点像是档案仓库的意思。
不过,通常我们还是使用Repository这个名词。
基本上,第一次我们需要有一个新增(add)档案的动作,将想要备份的档案放到Repository上面。
日后,当您有任何修改时,都可以上传到Repository上面,上传已经存在且修改过的档案就叫做commit,也就是提交修改给SVN server的意思。
针对每次的commit,SVN server都会赋予他一个新的版本。
同时,也会把每次上传的时间记录下来。
日后,因为某些因素,如果您需要从Repository下载曾经提交的档案。
您可以直接选择取得最新的版本,也可以取得任何一个之前的版本。
如果忘记了版本,还是可以靠记忆尝试取得某个日期的版本。
2、SVN安装2.1 SVN服务端安装①双击VisualSVN server安装包,弹出安装界面,点击Next,进入下一步②如下图,勾选“I agree the terms in the License Agreement”,点击Next,进入下一步③如下图,选择上面一个选项,点Next,进入下一步④如下图,点击上面一个选项⑤如下图,Location是指VisualSVN Server的安装目录,Repositorys是指定你的版本库目录.Server Port指定一个端口(请确保选择的端口未被占用),Use secure connection勾山表示使用安全连接.点击Next,进入下一步⑥如下图,点击Install,进入下一步⑦如下图,等待安装完成⑧如下图,安装完成2.2 SVN客户端安装双击TortoiseSVN安装包(注:软件分为32位和64位版本,下载时请根据自己的系统位数进行下载),会弹出安装界面,一直Next最后Install即可,等待片刻即安装完成。
TortoiseSVN史上最全教程TortoiseSVN教程1引⾔●团队开发?●修改⽂件⽽他⼈也在改?你修改的内容丢失?●保存了⽂件可⼜后悔了?想得到⼏天前的版本?●发现了bug,想知道bug何时引⼊的?这些问题都遇到了?那就使⽤TortoiseSVN吧。
TortoiseSVN是Subversion的客户端。
Subversion是针对CVS的不⾜⽽开发的版本控制系统。
这些提升主要包括以下的⼀些⽅⾯:1.⽬录、⽂件以及改名等元数据的版本化不同于 CVS 只关⼼⽂件的内容以及⽂件是否存在,所有⽂件、⽬录的相关操作都是被版本化的,例如⽂件的改名、拷贝等等;2.提交操作是真正的原⼦操作在 Subversion 中,提交操作是不可分割的,修订版本号是基于每次提交操作⽽⾮⽂件。
提交⽇志被附加在每个修订版本中,⽽不是像 CVS ⼀样冗余的进⾏存储;3.可通过 Apache 服务器提供基于 WebDAV/DeltaV 协议的⽀持,该功能可使 Subversion 通过 Apache Web 服务器使资源库更加灵活的在⽹上进⾏共享,使其在互操作性上⼤⼤优于 CVS;4.可独⽴运⾏。
当你不想使⽤ Apache 2.x 时候,你也可以使⽤ Svnserve,它可以以守护进程或者是Windows 下的服务⽅式独⽴运⾏;5.分⽀(Branching)与标签(Tagging)操作是轻量级的;6.客户服务器端分层库结构设计;7.资源库可以采⽤数据库(BerkeleyDB)或者是使⽤特定格式的⽂件进⾏存储;8.更有效的对⼆进制⽂件进⾏处理。
2基本概念2.1 版本库RepositorySubversion是版本管理的后台系统,其核⼼是保存数据的版本库-repository。
版本库⽤分层的“⽂件-⽬录”⽂件系统数来存储数据。
连接到版本库的客户能读写数据。
版本库是源码的集中存放处,记录了你的每⼀次修改!客户端可以从版本库中取到过去的版本。