相关文章推荐

使用分支的目的是,可以多个分支进行多版本并行开发,相互不干扰,而且任何时候都可以合并。同时,也保证了主干的稳定性。

项目目录格式,如:
一级目录(项目名称),如:Projectxxx
二级目录 (一级目录下的子目录),如:Projectxxx—trunk、branch、tag
三级目录(二级目录下的子目录),如:Projectxxx—trunk—projectXXX

1、trunk主干,永远只有一份完整的源码; 2、branch分支,可以有多个版本的源码; 3、tag存档,不同版本发布后存档(版本号+存档时间)。

分支开发
使用SmartSVN示例

从主干创建分支(创建分支方法及步骤)

1、通过SmartSVN的checkout功能,checkout 整个项目目录到本地,即一级目录和二级目录
2、在本地二级分支目录branch目录下,新建目录,如:V2.0.0
3、在SmartSVN的二级目录branch目录下,可以看到新建的目录V2.0.0,右击并选择Add(注意不进行Commit提交)
新建分支
4、在SmartSVN的二级目录branch目录下,选中新建的目录V2.0.0,后再选择菜单栏中的Copy From Repository(菜单栏-Modify-Copy From Repository)
分支源码
5、 在弹窗中进行相关目录的设置,1是 Copy 的源码目录,2是 Into Local 的分支的代码目录(Copy是复制前的目录,Into Local是复制后的目录且还在本地),3点击Copy进行复制,即创建分支的代码目录
分支选择
6、复制后,在SmartSVN中的分支目录branch目录下出现项目目录,选中并点击Commit进行提交,分支即创建成功
分支源码提交

分支合并到主干(从主干创建的分支)

1、在SmartSVN上,选择主干目录trunk目录下的项目目录
2、在菜单栏中选择合并Merge(菜单栏-Modify-Merge)
分支合并到主干
3、在弹窗中选择合并来源Other Location,并选择对应的svn路径,及选择All Revisions(not yet merged),后点击合并按钮Merge
分支合并到主干选择
合并代码选择
4、合并后,在SmartSVN中的主干目录trunk目录下,选择源码项目,并点击Commit进行合并后的代码提交
合并后提交

主干合并到分支(从主干创建的分支)

1、操作方工同分支合并到主干
1)选择要合并主干源码的分支(在svn项目全目录下,选择branch目录下的要被合并的分支源码目录)
2)选择:菜单栏-Modify-Merge
3)弹窗界面操作:Merge From(Other Location)-选择要合并到分支的主干源码SVN-All Revisions(not yet merged)-Merge
4)主干被合并到分支后,修改异常,编译正常再提交

报错:Cannot merge into a working copy that has local modifications
解决:因为只checkout了分支目录,且直接在分支目录进行合并操作;需要checkout整个项目目录,然后进入到分支目录再进行主干合并到分支的操作。

分支合并到分支(从分支创建的分支)

1、操作方工同分支合并到主干
1)选择要合并分支B源码的分支A(在svn项目全目录下,选择branch目录下的要被合并的分支A源码目录)
2)选择:菜单栏-Modify-Merge
3)弹窗界面操作:Merge From(Other Location)-选择要合并到分支的分支B源码SVN-All Revisions(not yet merged)-Merge
4)主干被合并到分支后,修改异常,编译正常再提交

注意:
1、不管是建立分支(主干创建分支,或分支再创建分支),还是合并(分支合并到主干,或主干合并到分支,或分支合并到分支),都是通过SVN工具把整个项目目录(包括一级,二级目录,三级目录等)checkout到本地后才能进行有效的操作。如果只是checkout主干,然后进行分支合并到主干操作,是不可行的,并且会给出错误提示;或只是checkout某个分支,然后进行主干合并到分支操作,也是不可行的。
2、合并前需要进行update操作,保证本地各分支源码都是最新的代码
3、提交修改备注时,注明修改的分支,如:主干上修改登录功能,或分支V2.0.0修改注册功能

为了在多个版本中并行 开发 ,提高 开发 效率,保证各个版本和各 个环境( 开发 、测试、主干)的独立,避免相互影响,减少最终 发布时 合并 主干出现冲突的概率,降低冲突处理的难度,特编写 Smartsvn 8,内有注册机。 Smartsvn for mac是Mac OS平台上的功能完备的Subversion客户端,可以运行在Linux, Mac OS X, OS/2, Unix和Windows(Java编写)。除了基本的Subversion命令如checkout, update, commit, merge以外,它也支持标签和 分支 处理(无需处理URL),有内置的比较和冲突解决工具,无需安装其他工具就可以处理 SVN 工作拷贝。 其最大的优势就是操作非常简单和方便,多有操作都可以通过鼠标点击完成。 由于大小限制,分成两部分,都免积分。 第二部分:http://download.csdn.net/detail/zhenghui89/8478529 SmartSVN 11 for Mac是 SVN 客户端, SmartSVN 可让您及时了解团队成员和项目的 SVN 活动。 SmartSVN 相对其他客户端更注意细节的变化,是一款非常使用的 SVN 客户端软件,支持标签和 分支 处理,操作非常简单和方便,大多数操作都可以通过鼠标点击完成。 SmartSVN 是可以使用存储库浏览器轻松选择存储库位置的工具。 smartsvn 11软件功能 标记和 分支 支持( SmartSVN ... 1、使用背景 在平时的项目研发中,存在项目版本 管理 的情况;做了很多项目,由于项目人数的问题,只是简单的使用 SmartSvn 进行Update、Commit交互;但是出现了几次这样的情况,游戏已经发布出去,但是线上的版本会不确定性的进行修改,可手里的版本已经进行了新功能的研发,由于服务器的表结构更改等相关类似问题,手里的版本是无法兼容线上版本。有几次比较傻傻的使用方式也可以解决,不过不方便,... 用Tortoise SVN Repo-browser,代码库先copy to ,创建 分支 b2 ![](https://img-blog.csdnimg.cn/6db0d713d71246b48a48bc140fe17373.png 此时看到版本库有 主干trunk 分支 b1 b2 检出到本地b2 本地b2 分支 修改内容,增加文件003,提交到版本库 分支 b2 本地 分支 合并 merge概念易混点 在From中选择trunk的路径,在to中选择branches路径 平时在工作中使用 SVN 只是限于 commit,update 这样的操作,至多再 reslove 解决一下冲突,没有用过 分支 管理 。 开发 过程中一般都是一个功能 开发 完成之后整体进行提交,而最近在项目中有一个比较大并且 开发 周期比较长的功能,所以在功能没有完成之前不方便进行提交,所以想到了使用 分支 管理 ,边学边用(所以工作最好一定要选 开发 流程规范的公司)。 /*环境: * ... 使用 svn 几年了,一直对 分支 和 合并 敬而远之,一来是因为 分支 的 管理 不该我操心,二来即使涉及到 分支 的 管理 ,也不敢贸然使用 合并 功能,生怕 合并 出了问题对团队造成不良影响,最主要的原因是,自己对 分支 的目的和 合并 的方法不甚了解,这才是硬伤。 最近由于适配机型的需要(本人从事手机客户端的 开发 ),需要经常接触 分支 和 合并 两项工作,突然发现这玩意整不明白很难开展工作,遂这两天着重研究了一下,有点收获,怕以后忘了,故... CornerStone是收费,如果是公司需要使用到,建议让公司购买软件使用版权,支持正版,当然网上也是有破解版本的。破解版提取密码(v5vh),如果下载成功需要输入密码(www.ifunmac.com)。 二、配置 SVN 1、在项目上右键,选择Tortoise SVN -->settings,  2、在弹出的Tortoise SVN Settings页面中选择“Saved Data”选项,  3、然后点击“Authentication data”对应的“Clear”按钮,清除一下之前的认证信息就可以了。      下次,就会要求输入用户名和密码,OK! LINUX环境:
 
推荐文章