- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一般svn版本库目录建议创建trunk、branches和tags三个目录。在实际操作时,trunk主干版本要时刻 保持干净,即随时可以基于这个版本进行修改并将应用部署上线。branches是分支目录,存放并行开发的项目代码,因为分支是主干的廉价拷贝(相当只是提交了一 次主干版本,增加了一个版本号, 并没有取出版本库作镜像拷贝),所以你可以放心建立很多分支版本。不过 Subversion不支持跨版本库的拷贝,当使用svn copy时你只能在同一个版本库内操作。tags目录存放trunk某个的快照,比如说release-1.0即trunk处于1.0版本时的快照。使用svn来作团队的代码管理,那么分支和合并将是非常常用的操作。需求一: 有一个客户想对产品做定制,但是我们并不想修改原有的svn中trunk的代码。 SVN 的副本是通过cheap copies 来实现的,建立一个副本就类似 Unix 中创建一个硬链接(hard link),空间和时间的消耗都是固定并且很小的,因此不必太过担心副本太多而导致性能问题。方法: 用svn建立一个新的branches,从这个branche做为一个新的起点来开发需求二: 产品开发已经基本完成,并且通过很严格的测试,这时候我们就想发布给客户使用,发布我们的1.0版本 这个和branches有什么区别,好像啥区别也没有? 是的,branches和tags是一样的,都是目录,只是我们不会对这个release-1.0的tag做修改了,不再提交了需求三: 有一天,突然在trunk下的core中发现一个致命的bug,那么所有的branches一定也一样了,该怎么办?在本地将最新的主干取出???? svn co /repos/example/trunk example(2)、到当前的example目录下合并分支,4889,4906分别表示分支的最初版本号和最终版本号svn merge -r 4889:4906 /repos/example/branches/branches_test
4、典型的svn目录结构project/branches/project/tags/project/trunk/
5、项目代码测试发布前别忘打上tag,作为一个基准.代表一次发布版本。
6、实用的SVN命令* svn copy 创建分支或者标签? svn copy /repos/calc/trunk /repos/calc/tags/release-1.0 -m Tagging the 1.0 release of the calc project.
* svn switch 切换工作拷贝到指定的分支或者返回主干??? svn switch /repos/calc/branches/my-calc-branch
* svn diff 版本比较svn diff rules.txt?????????? 比较本地修改svn diff --r 3 rules.txt??? 比较工作拷贝和版本库svn diff --r 2:3 rules.txt? 比较版本库与版本库
* svn revert? 删除你的本地修改,恢复到修改前的状态.
* 查一个过去的版本,重定向输出到一个文件svn cat -r 2 rules.txt rules.txt.v2
*svn info? 查看当前工作拷贝是在主干还是在哪个分支上。一些相关的概念和原理
分支(branch)和标记(tag)对于 SVN 来说就只是副本(copy),没有任何其它意义。分支和标记的意义是我们人为给予的。
SVN 的副本是通过cheap copies 来实现的,建立一个副本就类似 Unix 中创建一个硬链接(hard link),空间和时间的消耗都是固定并且很小的,因此不必太过担心副本太多而导致性能问题。
SVN 的文件储存 是通过差异(diff)来实现的,底层储存方法有两种:1、Berkeley DB,完整保存一个文件的最新版本(revision),旧版本通过反向差异(reverse diffs)来获取。2、FSFS,跟 BDB 相反,完整保存一个文件的初始版本,后续版本通过正向差异来获取。当然,为了避免版本太多而造成性能下降,SVN 还使用了skip-deltas 来减少需要追溯的版本数。
SVN 属性(property )可以附带在文件、目录和版本(revision)上。文件和目录的属性类似文件内容,会被记录进版本库中的,例如每次提交时的注释,其实就是该版本的一个属性 svn:log。以svn:开头的属性是系统预留的,用户不应该自定义这样的属性。
?
进行分支开发的最佳实践
做分支上做开发的时候,必须定期使分支与主干同步,避免
您可能关注的文档
最近下载
- 2025广西公需科目考试答案(3套,涵盖95_试题)一区两地一园一通道建设;人工智能时代的机遇与挑战.pdf VIP
- 2025商用车发动机气缸体铸件技术条件.docx VIP
- 颅内复杂动脉瘤介入治疗围术期护理专家共识2025 .pdf
- 第二节病虫害预测预报教学教材.ppt VIP
- 电梯新检规施工自检报告-曳引客货-2024.doc
- 2025年高考英语(新高考Ⅱ卷)试卷评析及2026高考备考策略 课件.pptx
- 2000年全国高中学生化学竞赛决赛(冬令营)理论试题与实验试题及参考答案精品.pdf VIP
- 苹果公司知识产权保护策略.pptx
- 中药饮片智能调剂与煎煮关键技术研究课件.pdf VIP
- 局部解剖学(山东联盟) 智慧树 知到答案.docx VIP
文档评论(0)