




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.SVN版本控制一、 版本库目录结构SVN版本库创建三个目录,如:trunk、branches和tags。trunk为主干版本,主干版本要随时可以将应用部署上线发布出去,而不能在主干版本上做任何代码的修改。branches是分支目录,存放并行开发的项目代码,可建立多个分支版本,在不同的分支上作不同的模块的编码。tags目录存放trunk某特定版本的快照,当trunk有新版本的合并时,都应该在tags目录下建立一个trunk当前版本的备份(特别是在大改前和大改后的版本必须做好备份并加以备注说明)。具体目录结构如下图:SVN版本库目录结构二、 导入本地项目到版本库中如果版本库中已保存了相关项目文件
2、,则直接把相关项目检出到本地即可。若版本库中没有相关项目,则按以下操作:在版本库中trunk文件夹右击点“检出(Checkout)”,检出操作在弹出窗口选定本地路径点“确定”把trunk文件夹检出到指定本地目录,检出弹出窗口把本地项目拷贝到当前目录的trunk文件夹中,然后右击trunk文件夹点“SVN提交(SVN Commit)”即可把本地项目导入到版本库中。三、 建立分支或标记先把版本库trunk中的项目checkout到本地,再右击本地的trunk文件夹到Tortoise SVN-分支/标记(branch/tag),建立分支/标记在弹出窗口中选择版本库中相关目录,如branches中的m
3、ybranch1.0目录,把最新版本项目拷贝到mybranch1.0目录下,点“确定”即可完成分支的创建。建立分支我们可以根据自己的需要创建多个分支,建议可以先创建两个基本的分支,比如mybranch1.0和mybranch2.0。mybranch1.0用来做项目日常维护,如修改bug,小功能优化等工作。mybranch2.0用来做相关数据库结构变化对应的代码修改的工作,数据库结构一旦发生变化理论上是不能还原回来的(一旦还原,将会丢失最新的数据),因此针对数据库结构变化所作的代码修改也不可能进行还原,因此这些代码应该单独建立一个分支来进行编码,而不能放在与功能相关的分支中进行编码。若当有其他大
4、改,如大模块的增加或修改,这时就要针对各模块另外再创建相应多的分支进行并行开发。另外还有一种方式,应当尽量避免一个分支合并多次,分支的作用一般为了解决bug,一旦bug对应结束了,分支的使命就结束了,以后再出现其他的问题,应当重新建立分支,这样就不会出现多次合并的问题了。标记(tag)从本质上来说也是一个分支,创建tag跟创建分支是一样的操作过程。Tag中存放了trunk中每个版本的快照,且不对其进行修改。四、 分支的修改与合并项目代码的修改,只允许对分支版本进行修改,而不允许在trunk或tags中进行修改。在一个分支中修改该分支的文件、commit或update文件均不会对其他分支版本造成
5、任何影响,因此你只需要关心当前分支的版本变化就行。分支每commit一次,版本库就会创建一个新的分支版本。当分支commit后,我们需要把当前分支的版本合并到主干版本中,或把主干中最新版本合并到当前版本。以分支合并到主干为例,在本地trunk文件夹右击Tortoise SVN-合并(Merge),合并分支在弹出窗口中可以见到有3种合并类型,分别为“合并一个范围的版本”、“复兴合并”和“合并两个不同的树”。三种合并类型合并一个范围的版本:将分支的特定版本范围的修改合并到主干上。合并的源URL填写的是要合并的分支的URL,待合并的版本范围如果为空,则指的是合并分支上所有的版本,即自从分支创建以来到
6、分支当前最新版本的所有演变。如果只是选择其中一个版本,或者几个版本,那么就表示只是将制定的n个版本的变化合并到主干上。如果只是选择其中一个版本,那么表示只是选择那个版本的修改,之前或之后的修改将不被采纳。合并一个范围的版本复兴合并:复兴合并可以理解为是第一种合并类型的一种特例,在复兴合并中,主干可以理解为是自从开创分支之后没有任何修改,而分支是经过修改的,而且合并中分支是没有版本选择的。经过复兴合并,分支中所有的修改都会合并到主干中,合并的结果将使得分支和主干一模一样,从而可以删除分支。复兴合并合并两个不同的树:此类型与前两种类型不同,第一种类型可以选择分支合并的版本,主干不能选择版本;第二种
7、类型是主干和分支都不能选择合并的版本;而这种类型则是无论是主干还是分支都可以选择合并的版本,即可以选择过去的一个主干版本与分支的某个版本进行合并,比如可以合并范围从主干的上次合并的版本开始到分支上最新的版本结束,如果是第一次合并,则从主干创建分支的版本开始,所以每次合并要做好说明,在日志中体现,不然忘记了下次再合并就有点麻烦。起始URL即选择主干目录的URL(应当和当前工作副本的URL一致)。结束URL为选择要合并的分支的URL。起始和结束的版本是指,一般起始版本应当找到最后一次同步时的版本,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些内容合
8、并进主干的话,也可以选择一个合并点。合并两个不同的树选中其中一种方式点“下一条(next)”,填写相关url及要合并的版本号,再点“下一条(next)”,这时可以点“测试合并(test merge)”测试看是否报错或有冲突,确定后点“合并(merge)”按钮进行合并。测试合并如果合并是发生冲突,会弹出提示框,可以点“编辑冲突”按钮度相关文件进行手动调整解决冲突,并按“解决”按钮完成本次冲突的编辑。当所有冲突解决后,点“确定”完成合并。合并冲突如果合并后的版本效果不满意,并且当前版本还没commit到版本库上,则可以通过Tortoise SVN-SVN还原(Revert),还原回当前合并前的版本
9、。五、 版本还原之前提到,通过Tortoise SVN-SVN还原(Revert)可以还原所有未提交的修改或合并。但是如果修改或合并的内容已经commit了,可以通过以下方法进行还原:右击相关分支(或主干)到Tortoise SVN-现实日志(Show log),在弹出窗口中可以看到该分支(或主干)的所有历史版本。右击相关版本点“复原到此版本”,即可把当前版本还原到指定版本,但所有版本记录并不会因此丢失。可以右击到Tortoise SVN-SVN还原(Revert)来恢复成原来版本。若已commit,可以通过以上方法还原到commit后的前一个版本来完成恢复。右击相关版本点“复原此版本做出的修
10、改”,可以把特定某个版本的变化复原回来。比如如果你曾经修改或合并了一个新的功能并commit到主干版本库上,后来你发现该功能有比较大的问题影响了系统正常运行且不能短时间内对其进行修复,这时可以点“复原此版本做出的修改”把该功能相应的版本暂时撤销下来,让系统先正常运行,再对该功能进行修复。版本还原但经本人实验“复原此版本做出的修改”时似乎有些问题,复原时很容易会有冲突,如果复原大改的功能冲突可能会更多,处理冲突时如果弄不好可能会出现一系列问题,也很容易造成混乱。以下方法将会较好的解决冲突问题,减少混乱,前面提到,trunk每次有新版本提交时都应该给新的版本创建一个快照,并存放在Tags目录下标记
11、。比如现在trunk做了4次提交,版本号分别为v100、v101、v102、v103(同时Tags中有4个快照),现在我想把v101所修改的内容撤销,那么我们只需拿出v101的前一个版本(即v100)的快照,将trunk版本与当前快照进行合并,合并时只需合并v101后面的所有版本(即v102、v103),这样就相当于撤销了v101所修改的内容,而且其他的修改均仍然存在。版本的恢复一般只是一种临时的维护措施,我们可以把临时的版本发布出去,但不需要把临时版本提交到版本库,以便造成混淆。六、 切换工作副本当创建了一个主干树并检出到本地副本时,你当前操作的副本就是主干副本的内容,任何操作会影响到主干的信息。当你给主干创建一个新分支时,可在弹出窗口中选中“切换工作副本至新分支/标记”,这时分支创建后,你当前的工作环境也会切换到新的分支中,这是你修改当前分支的内容影响的是当前分支,而不会对主干有任何影响。切换副本选项如果在创建分支
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030智慧农业技术应用产品市场供需模式创新投资评估未来规划研究探讨报告
- 2025-2030智慧农业废弃物处理行业供需现状与市场生态构建需求集成及投资机遇规划分析报告
- 2025-2030智慧农业产业园投资环境研判及资金规划
- 2025-2030智慧养老机器人陪伴产品市场现状分析规划
- 2025-2030智慧停车产业车位管理费用收益政策影响行业前景分析报告
- 2025-2030智慧交通诱导发布系统行业市场现状需求分析及投资评估规划分析研究报告
- 2025-2030智慧交通行业发展趋势分析及市场前景与政策规划研究报告
- 2025-2030智慧交通系统市场需求分析及产业化前景研究
- 2025-2030智利矿业资源开发行业政策支持现状及投资规划研究
- 2025-2030早教APP用户体验优化与家长付费意愿调查
- 道路养护以及维修方案(3篇)
- 农行审计管理办法
- 工时定额管理办法
- 玫瑰主题咖啡馆创新创业项目商业计划书
- 邮储银行招聘考试笔试试题集及参考答案
- 混凝土浇筑培训课件
- 2025年营养师考试题及答案
- 建立分公司策划方案
- 《人工神经网络设计 》 课件 第3章 感知器
- 椎管内肿瘤护理查房讲课件
- 2025年云南省中考英语试卷真题(含标准答案)
评论
0/150
提交评论