




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SVN版本控制一、版本库目录结构SVN版本库创建三个目录,如:trunk、branches和tags。trunk为主干版本,主干版本要随时可以将应用部署上线发布出去,而不能在主干版本上做任何代码的修改。branches是分支目录,存放并行开发的项目代码,可建立多个分支版本,在不同的分支上作不同的模块的编码。tags目录存放trunk某特定版本的快照,当trunk有新版本的合并时,都应该在tags目录下建立一个trunk当前版本的备份(特别是在大改前和大改后的版本必须做好备份并加以备注说明)。具体目录结构如下图:SVN版本库目录结构导入本地项目到版本库中如果版本库中已保存了相关项目文件,则直接把
2、相关项目检出到本地即可。若版本库中老重新整理 6导出二svnJ/IQcalhQst/ths* branches+ Jtagst JP?检出操作没有相关项目,则按以下操作:在版本库中trunk文件夹右击点”检出(Checkout)”,创楚主件夹.加A文件庐加入丈件灭(£).尸白©砂更?t在弹出窗口选定本地路径点“确定“把trunk文件夹检出到指定本地目录,上检出检出弹出窗口把本地项目拷贝到当前目录的trunk文件夹中,然后右击trunk文件夹点“SVN提交(SVNCommit)”即可把本地项目导入到版本库中。建立分支或标记先把版本库trunk中的项目checkout到本地、再
3、右击本地的trunk文件夹到TortoiseSVN-粉支/标记(branch/tag),84迥打盹20117-21资鸵理磊(P挨索盘用Cu:dF7P上惶-便用23勤删除乂翔蜀金堪)U-Sntsi1rsvr尿新rs/n4版玉库浏范房W 一检直处。淋JCI到压疽文岸S3祈 7倒圈rwp:刚压媚井E- tbMil.田压第Sil FUHJLZR”乔E棍变口,.令已解轴P.昨更新至版本迎/改节-xn»i)X)iisy>.尊甬建©3£).解除曲远ID删除址)卑切换射建立分支/标记在弹出窗口中选择版本库中相关目录,如branches中的mybranchl.O目录,把最新版
4、本项目拷贝到mybranchl.O目录下,点“确定”即可完成分支的创建。建立分支我们可以根据自己的需要创建多个分支,建议可以先创建两个基本的分支,比如mybranchl.O和mybranch2.0omybranchl.O用来做项目日常维护,如修改bug,小功能优化等工作。mybranch2.0用来做相关数据库结构变化对应的代码修改的工作,数据库结构一旦发生变化理论上是不能还原回来的(一旦还原,将会丢失最新的数据),因此针对数据库结构变化所作的代码修改也不可能进行还原,因此这些代码应该单独建立一个分支来进行编码,而不能放在与功能相关的分支中进行编码。若当有其他大改,如大模块的增加或修改,这时就要
5、针对各模块另外再创建相应多的分支进行并行开发。另外还有一种方式.,应当尽量避免一个分支合并多次,分支的作用一般为了解决bug,一旦bug对应结束了,分支的使命就结束了,以后再出现其他的问题,应当重新建立分支,这样就不会出现多次合并的问题了。标记(tag)从本质上来说也是一个分支,创建tag跟创建分支是一样的操作过程。Tag中存放了trunk中每个版本的快照,且不对其进行修改。四、分支的修改与合并项目代码的修改,只允许对分支版本进行修改,而不允许在trunk或tags中进行修改。在一个分支中修改该分支的文件、commit或update文件均不会对其他分支版本造成任何影响,因此你只需要关心当前分支
6、的版本变化就行。分支每commit一次,版本库就会创建一个新的分支版本。当分支commit后,我们需要把当前分支的版本合并到主干版本中,或把主干中最新版本合并到当前版本。以分支合并到主干为例,在本地trunk文件夹右击Tortoise5/11合并(Merge),打开(0)位用ciitsm上传便用2切弓金力删际共享和麦全QDZl-SnagitSYN更新电)产宫昏援交C)-工显示日志3胡添加到压缩丈件(A),宙麟加B1讯版聿库浏咒器比检查修改(M贫版本分支国"trunk, r ar*U ) 童压缩并 E-mailM 压缩到 trunk, r 并 E-miil己解决的r更新至版本cu)y改
7、塔x删除)9泅曲(V).尸-清建©,获职锁克剪切m套制电)创连快捷方式©删1分立街记一毛切换迥除重命名e属性合并分支在弹出窗口中可以见到有3种合并类型,分别为“合并一个围的版本”、“复兴合并”和“合并两个不同的树”、苔笄二个戚*苗围,矍弄芳摆匿甬F徐已妊在分支徵主干握交了版聿,要合并这些畴改到T砂吏的场合.个宜其井空谊个方堆适闱于你创题厂在Sibvftrsioft手RE中讨迢翳符惟空变J饕合井牛吏到主干的场含B0舍并两个不同的和¥毗方怯宣用十含弃曲于分支的星异如工柞副审LJ"耒边:职胄翔助三种合并类型合并一个围的版本:将分支的特定版本围的修改合并到主干上
8、。合并的源URL填写的是要合并的分支的URL待合并的版本围如果为空,则指的是合并分支上所有的版本,即自从分支创建以来到分支当前最新版本的所有演变。如果只是选择其中一个版本,或者几个版本,那么就表示只是将制定的n个版本的变化合并到主干上。如果只是选择其中一个版本,那么表示只是选择那个版本的修改,之前或之后的修改将不被采纳。合并一个围的版本复兴合并:复兴合并可以理解为是第一种合并类型的一种特例,在复兴合并中,主干可而且以理解为是自从开创分支之后没有任何修改,而分支是经过修改的,合并中分支是没有合并的结版本选择的。经过复兴合并,分支中所有的修改都会合并到主干中,和主干一模一果将使得分支样,从而可以删
9、除分支。复兴合并合并两个不同的树:此类型与前两种类型不同,第一种类型可以选择分支合并的版本,主干不能选择版本;第二种类型是主干和分支都不能选择合并的版本;而这种类型则是无论是主干还是分支都可以选择合并的版本,即可以选择过去的一个主干版本与分支的某个版本进行合并,比如可以合并围从主干的上次合并的版本开始到分支上最新的版本结束,如果是第一次合并,则从主干创建分支的版本开始,所以每次合并要做好说明,在日志中体现,不然忘记了下次再合并就有点麻烦。起始URL即选择主干目录的URL(应当和当前工作副本的URL致)。结束URL为选择要合并的分支的URL起始和结束的版本是指,一般起始版本应当找到最后一次同步时
10、的版本,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些容合并进主干的话,也可以选择一个合并点。合并树为树合并选择URL起始:合并范围的起始UM厢版本)jJsvn./Iocalhost/t£s/client/branches/vl.0O最新版本®©版本®结束:(合并范围的给束UR函版本)_)svn:/1ocalhost/1£s/client/branches/vl.0最新版本4)显示日志也)显示日志山)O版本®工作副本E:ttitalltrunk<后退8下_条W)>取消I常助
11、合并两个不同的树选中其中一种方式点“下一条(next)”,填写相关url及要合并的版本号,再点“下一条(next)”,这时可以点”测试合并(testmerge)”测试看是否报错或有冲突,确定后点”合并(merge) ”按钮进行合并。测试合并如果合并是发生冲突,会弹出提示框,可以点“编辑冲突”按钮度相关文件进行手动调整解决冲突,并按“解决”按钮完成本次冲突的编辑。当所有冲突解决后,点“确定”完成合并。合并冲突如果合并后的版本效果不满意,并且当前版本还没commit到版本库上,则可以通过TortoiseSVN->SVN还原(Revert),还原回当前合并前的版本。五、版本还原之前提到,通过T
12、ortoiseSVN->SVN还原(Revert)可以还原所有未提交的修改或合并。但是如果修改或合并的容已经commit了,可以通过以下方法进行还原:右击相关分支(或主干)到TortoiseSVN>现实日志(Showlog),在弹出窗口中可以看到该分支(或主干)的所有历史版本。右击相关版本点“复原到此版本”,即可把当前版本还原到指定版本,但所有版本记录并不会因此丢失。可以右击到TortoiseSVN->SVN还原(Revert)来恢复成原来版本。若已commit,可以通过以上方法还原到commit后的前一个版本来完成恢复。右击相关版本点“复原此版本做出的修改”,可以把特定某个
13、版本的变化复原回来。比如如果你曾经修改或合并了一个新的功能并commit到主干版本库上,后来你发现该功能有比较大的问题影响了系统正常运行且不能短时间对其进行修复,这时可以点“复原此版本做出的修改”把该功能相应的版本暂时撤销下来,让系统先正常运行,再对该功能进行修复。版本还原但经本人实验“复原此版本做出的修改”时似乎有些问题,复原时很容易会有冲突,如果复原大改的功能冲突可能会更多,处理冲突时如果弄不好可能会出现一系列问题,也很容易造成混乱。以下方法将会较好的解决冲突问题,减少混乱,前面提到,trunk每次有新版本提交时都应该给新的版本创建一个快照,并存放在Tags目录下标记。比如现在trunk做
14、了4次提交,版本号分别为v100>v101、v102、v103(同时Tags中有4个快照),现在我想把v101所修改的容撤销,那么我们只需拿出V101的前一个版本(即V100)的快照,将trunk版本与当前快照进行合并,合并时只需合并v101后面的所有版本(即v102、v103),这样就相当于撤销了v101所修改的容,而且其他的修改均仍然存在。版本的恢复一般只是一种临时的维护措施,我们可以把临时的版本发布出去,但不需要把临时版本提交到版本库,以便造成混淆。六、切换工作副本当创建了一个主干树并检出到本地副本时,你当前操作的副本就是主干副本的容,任何操作会影响到主干的信息。当你给主干创建一个
15、新分支时,可在弹出窗口中选中“切换工作副本至新分支/标记”,这时分支创建后,你当前的工作环境也会切换到新的分支中,这是你修改当前分支的容影响的是当前分支,而不会对主干有任何影响。戟豆制标记J版本库从工作乱克”110:初;SW11C727.1至 URL (T):ji 57H: /AQcohtBAtfs/diFitftflgA 11C7Z7 hiC.照主年中鲍翩毓圭(宙。版本弄中的5匪版本 o工惟到物出13R0日志信M切换副本选项如果在创建分支时没有选中“切换工作副本至新分支/标记”,那么分支创建后你做在的工作副本仍然是原来的副本。如果你现在想切换到新的分支副本中,右击当前副本到TortoiseSVN->切换(Sw计ch),立科夹HH(e)按索u.卫用CuttKfP上倍QS&a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年破碎机锤头项目可行性研究报告
- 2025年钛盘子行业深度研究分析报告
- 2025年中国蓄禽养殖中抗生素行业竞争格局分析及投资规划研究报告
- 2025年中国尼可刹米注射液市场运行态势及行业发展前景预测报告
- 2024-2030年中国民办中小学校行业市场发展监测及投资战略规划报告
- 泵机设备制造项目可行性研究报告申请报告
- 烟台生物医药制品项目评估报告
- 电表专用芯片行业深度研究报告
- 京剧的发声训练方法有哪些
- 2025年机械底漆喷涂机项目投资可行性研究分析报告
- 海洋钻井(平台)
- (完整版)电梯的钢结构施工方案
- 中国近现代史纲要ppt全共64页课件
- 腰椎间盘突出症(腰痹病)中医临床路径
- 教学团队建设总结报告
- 研发经费填报指标说明及核算方法
- 装饰施工进度计划网络图及横道图
- 一年级思维训练(课堂PPT)
- 实木电脑桌书桌安装图
- GB_T 27025-2019 检测和校准实验室能力的通用要求(高清版)
- 俱乐部经营俱乐部经营
评论
0/150
提交评论