??xml version="1.0" encoding="utf-8" standalone="yes"?>
1.创徏分支
创徏分支实际上就是将E序copy一份到指定的分支目录,如下囄Q?/p>
在项目名UC点击右键Q弹单,选择“Team”Q再选择“Branch/Tag”Q弹Z面的面Q?nbsp;
上图中的“Copy to URL”填写创徏新分支的路径地址Q后面会程?/span>copy到该目录下,形成新的分支。点?#8220;Next”:
选择当前最新的版本Q点?#8220;Next”
如果N了上图下面?/span>switch working copy to new branch/tagQ?/span>eclipse的程序项目会自动切换到分支下。这里我们不选择Q待会自己切?/span>?/p> q样创Z一?.0的分?/p> 2.合ƈ 可以从主q合q到分支Q也可以从分支合q到dQ根据需要可以选择合适的选项Q如下图Q?/span> 上图中的选项Q?/span> 1) 从主q合q到分支 2) 从分支合q到d 3) 主q上的修改合q到分支 4) 合ƈ2个分支到d 5) 从主q到分支Q手工指定不需要合q的修改 6) 从主q到分支Q手工指定要合ƈ的修?/p> 上图昄没有M修改Q所以不用进行合q?/span> 3.切换 在项目名UC点击右键Q选择“Team” –> “switch to another Branch/Tag/Revision”?/span> 选择需要切换的目的地址Q点?/span>ok卛_?/span> q样Q在目里就可以在主q和若干分支间进行Q意切换,来实现对不同版本/分支的程序进行修Ҏ交操作?/span>
]]>
1.创徏分支
创徏分支实际上就是将E序copy一份到指定的分支目录,如下囄Q?/p>
在项目名UC点击右键Q弹单,选择“Team”Q再选择“Branch/Tag”Q弹Z面的面Q?nbsp;
上图中的“Copy to URL”填写创徏新分支的路径地址Q后面会程?/span>copy到该目录下,形成新的分支。点?#8220;Next”:
选择当前最新的版本Q点?#8220;Next”
如果N了上图下面?/span>switch working copy to new branch/tagQ?/span>eclipse的程序项目会自动切换到分支下。这里我们不选择Q待会自己切?/span>?/p> q样创Z一?.0的分?/p> 2.合ƈ 可以从主q合q到分支Q也可以从分支合q到dQ根据需要可以选择合适的选项Q如下图Q?/span> 上图中的选项Q?/span> 1) 从主q合q到分支 2) 从分支合q到d 3) 主q上的修改合q到分支 4) 合ƈ2个分支到d 5) 从主q到分支Q手工指定不需要合q的修改 6) 从主q到分支Q手工指定要合ƈ的修?/p> 上图昄没有M修改Q所以不用进行合q?/span> 3.切换 在项目名UC点击右键Q选择“Team” –> “switch to another Branch/Tag/Revision”?/span> 选择需要切换的目的地址Q点?/span>ok卛_?/span> q样Q在目里就可以在主q和若干分支间进行Q意切换,来实现对不同版本/分支的程序进行修Ҏ交操作?br />
参考:
Overview of CollabNet Merge Client
https://desktop-eclipse.open.collab.net/servlets/ProjectProcess?pageID=MEuUjb&freeformpage=Merge%20Client
eclipse中将SVN分支合ƈCq的Ҏ
http://www.darrenfang.com/merge-branches-to-trunk-in-eclipse.html
]]>
在实CQbranch和tagQ对于svn都是使用copy实现的,所以他们在默认的权限上和一般的目录没有区别。至于何时用tagQ何时用branchQ完全由Z观的Ҏ规范和需要来选择Q而不是强制的Q比如cvsQ。一般情况下QtagQ是用来做一个milestone的,不管是不是releaseQ都是一个可用的版本。这里,应该是只ȝ。更多的是一个显C用的,lh一个可读(readableQ的标记。branchQ是用来做ƈ行开发的Q这里的q行是指和trunkq行比较。比如,3.0开发完成,q个时候要做一个tagQtag_release_3_0Q然后基于这个tag做releaseQ比如安装程序等。trunkq入3.1的开发,但是3.0发现了bugQ那么就需要基于tag_release_3_0做一个branchQbranch_bugfix_3_0Q基于这个branchq行bugfixQ等到bugfixl束Q做一个tagQtag_release_3_0_1Q然后,Ҏ需要决定branch_bugfix_3_0是否q入trunk。对于svnq要注意的一点,是它是全局版本P其实q个是一个tag的标讎ͼ所以我们经常可以看刎ͼ什么什么releaseQ基于xxx目?xxxx版本。就是这个意思了。但是,它还明确的给Z个tag的概念,是因ؓq个更加的可读,毕竟Ctag_release_1_0要比C一个很大的版本号容易的多?br />
branchesQ分?br />SVN中tag branch trunk的用法,首先看一下branches的介l。当多个人合作,可能有这L情况出现QJohnH然有个xQ跟原先的设计不太一_可能是功能的d或者日志格式的改进{等Q总而言之,q个x可能需要花一D|间来完成Q而这个过E中QJohn的一些操作可能会影响Sally的工作,John从现有的状态单独出一个project的话Q又不能及时得到Sally对已有代码做的修正,而且独立出来的话QJohn的尝试成功时Q跟原来的合q也存在困难。这时最好的实践Ҏ是用branches。John建立一个自qbranchQ然后在里面实验Q必要的时候从Sally的trunk里取得更斎ͼ或者将自己的阶D|果汇集到trunk中?br />QsvncopySourceURL/trunkDestinationURL/branchName-m"Creatingaprivatebranchofxxxx/trunk."Q?br />
trunkQ主q?br />dQ一般来说就是开发的主要呆的地方Q?br />
tag: 图标
在经q了一D|间的开发后Q项目到达了一个里E碑阶段Q你可能惌录这一阶段的代码的状态,那么你就需要给代码打上标签?br />(svncpfile:///svnroot/mojavescripts/trunkfile:///svnroot/mojavescripts/tags/mirrorutils_rel_0_0_1-m"tagedmirrorutils_rel_0_0_1")另有一_无所谓谁对谁错?br />
trunkQ表C开发时版本存放的目录,卛_开发阶D늚代码都提交到该目录上?br />
branchesQ表C发布的版本存放的目录,即项目上U时发布的稳定版本存攑֜该目录中?br />
tagsQ表C标{֭攄目录?br />
在这需要说明下分三个目录的原因Q如果项目分Z期、二期、三期等Q那么一期上U时的稳定版本就应该在一期完成时代码copy到branches上,q样二期开发的代码对一期的代码没有影响Q如新增的模块就不会部v到生产环境上。而branches上的E_的版本就是发布到生环境上的代码Q如果用户用的q程中发现有bugQ则只要在branches上修改该bugQ修改完bug后再~译branches上最新的代码发布到生产环境即可。tags的作用是在branches上修改的bug的代码合q到trunk上时创徏个版本标识,以后branches上修改的bug代码再合q到trunk上时׃tags的version到branches最新的version合ƈ到trunkQ以保证前期修改的bug代码不会再合q?br />
-------------------------------------------------------------------------------------------
介绍SVN中tag branch trunk用法Ӟ一直以来用svn只是当作cvsQ也从来没有仔细看过文档Q直C天用刎ͼ才去ȝsvnbook文档Q惭?br />
需求一Q?br />有一个客h对品做定制Q但是我们ƈ不想修改原有的svn中trunk的代码?br />ҎQ?br />用svn建立一个新的branchesQ从q个branche做ؓ一个新的vҎ开?br />svncopysvn://server/trunksvn://server/branches/ep-m"initep"
Tip:
如果你的svn中以前没有branchesq个的目录,只有trunkq个Q你可以?br />svnmkdirbranches新徏个目?br />
需求二Q?br />产品开发已l基本完成,q且通过很严格的试Q这时候我们就惛_布给客户使用Q发布我们的1.0版本
svncopysvn://server/trunksvn://server/tags/release-1.0-m"1.0released"咦,q个和branches有什么区别,好像啥区别也没有Q?br />是的Qbranches和tags是一LQ都是目录,只是我们不会对这个release-1.0的tag做修改了Q不再提交了Q如果提交那么就是branches
需求三Q?br />有一天,H然在trunk下的core中发C个致命的bug,那么所有的branches一定也一样了Q该怎么办?
svn-r148:149mergesvn://server/trunkbranches/ep其中148?49是两ơ修改的版本受SVN中tag branch trunk用法介绍完毕?img src ="http://www.aygfsteel.com/paulwong/aggbug/413344.html" width = "1" height = "1" />
]]>