svn简介(未完成)

来源:互联网 发布:2017淘宝大麻暗语 编辑:程序博客网 时间:2024/05/08 00:55

    由于对svn update出现的冲突随意处理,将别人发到现网的特性覆盖掉,导致别人的特性出现了回滚,一定程度上影响到了外网用户,可见对于SVN的原理学习,在实际的开发过程中还是很有必要的。

概述
什么是SVN分支?
假设你需要在你的电脑上维护一份被分离的文档,一个手册或是别的什么.某天要求你对同份文档做一个不同的修改分离,但分离后他们两者只有一小部分不同,因此只有轻微的不同.
你将怎么解决这种处境?显而易见的方法是不是:可以再拷贝这份文档,然后保存两个不同的分离版本.当某个部分要进行修改时,只要写入对应的文件就可以了.
经常需要对两个拷贝版本进行同样的修改.例如:如果发现一个打印错误在第一个文件里,这也很可能存在第二个拷贝文件里.这两个文件是相同的的.
这就是分支的基本概念,一条基于另外一条开发线存在的分支.并共享在分离之前的日志.一个分支就象一个拷贝的存在,并从那里离开,并具有自己的历史.
使用SVN分支
假设Sally与你同时拥有"calc"项目的工作副本,并都有/calc/trunk的工作副本.所有项目相关的文件都在/calc目录下,因为你们的团队已经商定/calc/trunk用于存放开发主线.
此时你被要求完成一个任务就是新增项目的一个基本新特性.这将需要很长的时间来完成.问题是你不想与Sally有任何冲突,她正在修改项目中的一些存在的小BUG.并依赖于最新发布的项目版本,这里(/calc/trunk)主线版本是最有效的.如果你提交修改那么肯定会打乱Sally的修改工作.一种策略就是进入一个空洞:你和Sally在一到两周内停止共享信息.那就是开始获取整顿在你工作副本的所有文件,并不做任何提交一直到你完成工作任务.这个方案存在着很多问题,第一,这样一来做不安全.很多人喜欢频繁的将工作结果上传到版本库,已防止工作副本被突发事件破坏引起的后果.第二,不够容易.如果你在不同的机器上工作,你就需要手工的将工作副本进行拷贝修改.最后,当你完成你的所有修改后,你将发现很难将你的工作合并到主线项目的代码中去.更好的解决方法就是创,建所有你自己的分支.能频繁的提交工作在不与其他人的冲突下.也能有选择性的共享信息.
创建一个SVN分支
创建一个分支非常简单-只需要用svn copy命令拷贝项目就可以.Subversion不单支持单文件,也支持整个文件目录的分支创建.在此例中,我们要拷贝/calc/trunk文件夹.那么应该把拷贝放在那里呢?任何地方你想要放置的地方.这里需要提到项目的策略在库中有/calc/branches目录空间,并你想要拷贝的目录名重命名为my-calc-branch.


在公司的实际开发中,由于拉取主干分支存在很重的验证,分支验证已经合流到主干还要验证,对于快速开发来说并不适用。目前采取的策略是,都在主干上进行修改,当要发布特性时,要锁住自己负责的部分,防止svn commit之后,未验证特性被别人不知情情况下带出去。

后续,增加svn的常用操作和原理实现。

0 0