


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SVN版本控制一、版本库目录结构SVN版本库创建三个目录,如:trunk、branches和tags。 trunk为主干版本,主干版本要随时可以将应用部署上线发布出去,而不能在主干版本上做任何代码的修改。bran ches是分支目录,存放并行开发的项目代码,可建立多个分支版本,在不同的分支上作不同的模块的编码。tags目录存放trunk某特定版本的快照,当trunk有新版本的合并时,都应该在tags目录下建立一个trunk当前版本的备份(特别是在大改前和大改后的版本必须做好 备份并加以备注说明)。具体目录结构如下图:SVN版本库目录结构导入本地项目到版本库中如果版本库中已保存了相关项目文件,则
2、直接把相关项目检出到本地即可。若版本库中没有相关项目,则按以下操作:在版本库中trunk文件夹右击点检出(Checkout) ”,住1重新整理创楚主件夹. 嵐j加A文件 庐加入丈件灭().6导出-二 svnJ/lQcalhQst/ths尸 jin bii in-: 白砂更? tj* branches+ _j tags t Jp1检出操作在弹出窗口选定本地路径点确定”把trunk文件夹检出到指定本地目录,检出弹出窗口把本地项目拷贝到当前目录的 trunk文件夹中,然后右击trunk文件夹点“SVN提交(SVN Commit)”即可把本地项目导入到版本库中。建立分支或标记先把版本库trunk中的项
3、目checkout到本地,再右击本地的trunk文件夹到Tortoise SVN-粉支 / 标记(branch/tag ),伪 Lt oiik |匚打开V0)挨索0) 宜用Ciit=F7P上愷-便用勸删常2011-T-2I茎亨湘5?金堪).Id1If SVT手新 rsw ts变口ZZ33显示巳蛊S8添即到压輙件 凰祈J倒Fzh rwp: 目圧縮井E Eil , 畐压趣Funky* jT版本库浏范恭W =检直鮭1) 税甌本刃支E)L令已解轴少 呼更新至版本Q发送到堰*复w/改邑0 X1B0)O Stu il y).J卓風能匡).:解陳咗迄曲创崖性擢注i 删際纽) 重命名d庵1W|也分支/标促tl
4、).!1逹切換 一建立分支/标记在弹出窗口中选择版本库中相关目录,如branches中的mybranchl.O目录,把最新版本项目拷贝到 mybranchl.O目录下,点确定”即可完成分支的创建。建立分支我们可以根据自己的需要创建多个分支,建议可以先创建两个基本的分支,比如mybranchl.O和mybranch2.0。mybranchl.O用来做项目日常维护,如修改bug,小功能优化等工作。mybranch2.0用来做相关数据库结构变化对应的代码修改的工作,数据库结构一旦 发生变化理论上是不能还原回来的(一旦还原,将会丢失最新的数据),因此针对数据库结构变化所作的代码修改也不可能进行还原,因
5、此这些代码应该单独建立一个分支来进行编 码,而不能放在与功能相关的分支中进行编码。若当有其他大改,如大模块的增加或修改, 这时就要针对各模块另外再创建相应多的分支进行并行开发。另外还有一种方式,应当尽量避免一个分支合并多次,分支的作用一般为了解决bug,一旦bug对应结束了,分支的使命就结束了,以后再出现其他的问题,应当重新建立分支, 这样就不会出现多次合并的问题了。标记(tag)从本质上来说也是一个分支,创建tag跟创建分支是一样的操作过程。Tag中存放了 trunk中每个版本的快照,且不对其进行修改。四、分支的修改与合并项目代码的修改,只允许对分支版本进行修改,而不允许在trunk或tag
6、s中进行修改。 在一个分支中修改该分支的文件、commit或update文件均不会对其他分支版本造成任何影响,因此你只需要关心当前分支的版本变化就行。分支每commit 一次,版本库就会创建一个新的分支版本。当分支commit后,我们需要把当前分支的版本合并到主干版本中,或把主干中最新版 本合并到当前版本。以分支合并到主干为例,在本地trunk文件夹右击Tortoise SVN-合并(Merge),打开(0)位用ciitsm上传便用2切強力删际共享和麦全QD二 Snagit*SYN更新电) 产宫昏援交C)-*Lortoi ssSVI占士显示日志32011-1;剪切m 套制电)创逹快捷方式 删除
7、重命名e田添加到压缩丈件(A), 宙麟加Bl trunk, r ar*U) 童压缩并E-mail.関 压缩到 trunk, r 并 E-miil属性讯版聿库浏览器 n;检查修改 眞版本分支国 己解决的 r更新至版本cu). y改塔 x删除)9 泅囲(V).尸清建巳获职锁克 3鱗離疑閻命分立術记 毛切换迥合并分支在弹出窗口中可以见到有 3种合并类型,分别为“合并一个围的版本”、“复兴合并”和“合并两个不同的树” 述罕芳摆匿甬F徐已妊在分支黴主干屈交了版聿,要合并这些時改到T砂 吏的场合.八:宦翼井空谊个和去适闱于你创逢了在Sibi-sioft手HE中讨至開翳將惟另变J鑒合井牛 吏到主干的场含.0
8、舍幷两个不同的和毗方怯宣用十含弃曲于分支的星异如工柞副审下一条边取消鞘助三种合并类型合并一个围的版本:将分支的特定版本围的修改合并到主干上。合并的源URL填写的是要合并的分支的URL待合并的版本围如果为空,则指的是合并分支上所有的版本,即自从 分支创建以来到分支当前最新版本的所有演变。如果只是选择其中一个版本, 或者几个版本,那么就表示只是将制定的 n个版本的变化合并到主干上。如果只是选择其中一个版本,那么 表示只是选择那个版本的修改,之前或之后的修改将不被采纳。合并一个围的版本复兴合并:复兴合并可以理解为是第一种合并类型的一种特例,以理解为是自从开创分支之后没有任何修改,而分支是经过修改的,
9、在复兴合并中,主干可 而且合并中分支是没有 合并的结果将使得分支复兴合并版本选择的。经过复兴合并,分支中所有的修改都会合并到主干中, 和主干一模一样,从而可以删除分支。合并两个不同的树:此类型与前两种类型不同,第一种类型可以选择分支合并的版本, 主干不能选择版本;第二种类型是主干和分支都不能选择合并的版本;而这种类型则是无论是主干还是分支都可以选择合并的版本,即可以选择过去的一个主干版本与分支的某个版本进行合并,比如可以合并围从主干的上次合并的版本开始到分支上最新的版本结束,如果是第一次合并,则从主干创建分支的版本开始,所以每次合并要做好说明,在日志中体现,不然忘记了下次再合并就有点麻烦。起始
10、URL即选择主干目录的 URL(应当和当前工作副本的 URL致)。结束URL为选择 要合并的分支的 URL起始和结束的版本是指,一般起始版本应当找到最后一次同步时的版 本,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版 本,如果你不想将某些容合并进主干的话,也可以选择一个合并点。合并两个不同的树选中其中一种方式点下一条(next )”,填写相关url及要合并的版本号,再点“下一 条(next )”,这时可以点测试合并(test merge )”测试看是否报错或有冲突,确定后点合并(merge)”按钮进行合并。测试合并如果合并是发生冲突,会弹出提示框,可以点“编辑冲
11、突”按钮度相关文件进行手动调整解决冲突,并按“解决”按钮完成本次冲突的编辑。当所有冲突解决后,点“确定”完成 合并。合并冲突如果合并后的版本效果不满意,并且当前版本还没commit到版本库上,则可以通过Tortoise SVN-SVN 还原(Revert),还原回当前合并前的版本。五、版本还原之前提到,通过Tortoise SVN-SVN还原(Revert)可以还原所有未提交的修改或合并。 但是如果修改或合并的容已经commit 了,可以通过以下方法进行还原:右击相关分支(或主干)到 Tortoise SVN-现实日志(Show log),在弹出窗口中可以 看到该分支(或主干)的所有历史版本。
12、右击相关版本点“复原到此版本”,即可把当前版本还原到指定版本,但所有版本记录 并不会因此丢失。可以右击到Tortoise SVN-SVN还原(Revert )来恢复成原来版本。若已commit,可以通过以上方法还原到commit后的前一个版本来完成恢复。右击相关版本点“复原此版本做出的修改”,可以把特定某个版本的变化复原回来。比如如果你曾经修改或合并了一个新的功能并commit到主干版本库上,后来你发现该功能有比较大的问题影响了系统正常运行且不能短时间对其进行修复,这时可以点“复原此版本做出的修改”把该功能相应的版本暂时撤销下来,让系统先正常运行,再对该功能进行修复。甘 日亦信思 一 E;te
13、stc;I iejjtZOlb 7 36v措束ZDIL 7-Z6信息07g86蓟站5-3S3sa015300也AiJ扳云援柞 95欄 9耳93腔弐与工忸库:俶氐“标蓬歪异館式显示故灭 礒抽r版瓠阪蓋异 贏与肃一版瓠阪并迫剎作誓 日斟samicf 1E:33M1. Z01J 年了月 26日 same;15:33:06, 3D1 :年F月Mb 日saTics15:3:50, 3011毎月邦日saflK16!32;42, 2011 年*月器日ftft匚慘罠 /cleixAjid mJ u:理徂简?丕庄卩囚辱柿J隠中已題 f里豺页艮工扳盂j_珊備*聖旦复1原讹版老作日的他西追)丿 合卉順本封.疔,检注
14、迪.$辱出花I 黜1版本.士評显战或*T loo更新艷玦复制到雲貼氐査找日虑信趙y正正丘示厲亍匿車fr: 回樂氓无夬的修晦空1 初审啊细施二I赳會合井浙丰版本还原但经本人实验“复原此版本做出的修改”时似乎有些问题,复原时很容易会有冲突,如果复原大改的功能冲突可能会更多,处理冲突时如果弄不好可能会出现一系列问题, 也很容易造成混乱。以下方法将会较好的解决冲突问题,减少混乱,前面提到,trunk每次有新版本提交时都应该给新的版本创建一个快照,并存放在Tags目录下标记。比如现在 trunk做了 4次提交,版本号分别为 v100、v101、v102、v103 (同 时Tags中有4个快照),现在我想
15、把v101所修改的容撤销,那么我们只需拿出 v101的前一 个版本(即v100)的快照,将trunk版本与当前快照进行合并,合并时只需合并v101后面的所有版本(即 v102、v103),这样就相当于撤销了v101所修改的容,而且其他的修改均仍然存在。版本的恢复一般只是一种临时的维护措施,我们可以把临时的版本发布出去,但不需要把临时版本提交到版本库,以便造成混淆。六、切换工作副本当创建了一个主干树并检出到本地副本时, 你当前操作的副本就是主干副本的容, 任何 操作会影响到主干的信息。 当你给主干创建一个新分支时, 可在弹出窗口中选中 “切换工作 副本至新分支/标记”,这时分支创建后,你当前的工作环境也会切换到新的分支中, 这是你 修改当前分支的容影响的是当前分支,而不会对主干有任何影响。切换副本选项如果在创建分支时没有选中 “切换工作副本至新分支/标记”,那么分支创建后你做在的工作副本仍然是原来的副本。如果你现在想切换到新的分支副本中,右击当前副本到Tortoise SVN-切换(Switch),卫堆CuttKrp上隹 二期卸陆ZIr 5W吏新d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 畜牧设备牧场养殖场环境保护法律法规考核试卷
- 职场健康促进考核试卷
- 婴幼儿睡眠规律培养考核试卷
- 煤化工实验室技术与分析考核试卷
- 灯具基础知识入门考核试卷
- 纸板容器跨国经营风险管理考核试卷
- 环境保护宣传教育教材开发考核试卷
- 硅冶炼厂的生态环境保护考核试卷
- 矿用设备声学监测技术考核试卷
- 社会服务项目策划与执行考核试卷
- 加装电梯项目安全、文明施工措施
- 《健康体检介绍》课件
- 项目验收意见书
- 交通运输的节能与环保措施
- 游艇会服务流程
- 高压带电显示器说明书全解
- 数据中心基础设施管理系统DCIM技术方案
- 企业网络安全与数据保护策略
- 2024届高考英语语法填空专项课件
- 第五课滴答滴答下雨了课件
- 新教师岗前培训讲座中小学教学常规PPT
评论
0/150
提交评论