svnmerge(svn merge命令)
本篇文章给大家谈谈svnmerge,以及svn merge命令对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、如何利用SVN合并代码
- 2、ios svn 不小心还原版本了 怎么恢复
- 3、SVN merge操作
- 4、svn如何回滚到之前版本
- 5、svn cp和merge的区别
- 6、svn 使用merge操作,将branch合并到trunk上时,出现了如下图所示的问题,哪位高手帮忙解决啊???
如何利用SVN合并代码
利用SVN合并
Subversion的版本库是一种文件服务器,但不是“一般”的文件服务器。Subversion版本库的特别之处在于,它会记录每一次改变:每个文件的改变,甚至是目录树本身的改变,例如文件和目录的添加、删除和重新组织;可见SVN可自动识别出开发者具体修改什么代码,在合并时,只要知道SVN版本号,它会自动找出修改过的代码,然后合并到最终目标文件中。因此使用SVN来合并代码具有合并质量高以及高效的特点。 SVN的合并有三种类型,如下图:
第一种类型:合并一个版本范围
该类型是根据SVN指定的版羡祥衫本号来合并,也是最灵活的一种合并方式,可以是主干合并到宴禅分支,或分支合并到主干;主要应用场景是把分支或主干里面的一部分修改同步到主干或分支中去;甚至支持不同库的两个分兄腔支,当然这两个分支要求是相同的目录结构。
第二中类型:复兴分支
把分支合并到主干上,这里会把所有分支的修改,都合并到主干中,如果只想合并一部分,不合适使用该类型;而且这种类型合并受限的条件比较多,如分支和主干必须是在同一个库,本地工作目录不能够包含有被修改过的文件等。
第三种类型:合并两个不同的树
把两个分支的差异合并到本地的工作目录;其实它也可以把分支的代码同步到主干中,只需要把合并的from指定为主干URL,to指定为分支URL, 而本地工作目录是主干。
利用SVN合并具体步骤
在上面的三中类型中,最常用最灵活的是第一中类型:“合并一个版本范围”,也是我用得最多的一种合并类型。下面以这个类型为例,来介绍合并的整个过程,假设是从分支合并到主干。对于另外的两种类型合并都差不多;这里就不一一介绍了。
1.把主干check out 到本地,并确保文件更新到最新状态
2.按照下图示打开合并对话框:
3.选择合并类型:
根据合并类型进行选择,这里的例子中是选择第一个类型,然后再点“Next”按钮。
4.填写SVN URL和版本号信息:
“URL to merge from”下拉框选择需要合并分支或主干,在例子中,选择的是分支v1.0;在“revision range to merge”文本框选择具体需要合并的SVN版本号,可通过“show log”按钮查看有哪些版本号。可选择具体的版本号,也可以选择一个区间的版本号,如4-7,表示从SVN版本号4-7的全部合并。如选择区间版本号,需按住shift键。输入各项信息后,再点“next”。
5.合并选项的选择
6.测试合并
在上面步骤中,直接点“test merge”按钮来测试合并结果。如果有冲突,则会有提示有冲突:
7.开始合并
在步骤6中,直接点击“merge”按钮将会开始合并, 如没有冲突时,合并后的对话框将是下面的截图:
8.处理冲突
合并后有冲突时,弹出的对话框如下图,注意此时“resolved”按钮是灰色
点“edit conflict”按钮,将打开SVN的合并对话框,让开发者进行手工合并
通过手工合并后,合并后的代码将在下面窗口中显示,确认合并完毕,点工具栏上的第二个保存图标进行保存,并关闭当前合并的对话框;回到处理冲突的对话框中,会发现之前“resolved”按钮是灰色,现在变成可点按钮:
点“resolved”按钮,至此,当前的冲突已解决;SVN会继续合并后面的版本。
9.提交代码
合并完代码后,最后别忘记提交代码,同时要输入注释,方便日后追溯。注释参考格式如下:从[分支或主干]合并代码到[主干或分支],版本号是从[开始的版本号]到[结束的版本号];
[img]ios svn 不小心还原版本了 怎么恢复
svn没有恢复旧版本的直接功能,不过可以使用svn merge命令恢复。
比如说当前HEAD为14,而我要恢复成10版本,怎么做?用svn merge:
1 svn update
2
3 svn merge --revision 14:10
4
5 svn commit -m "restore to revision 10"
可能会很奇怪,因为不理解为什么合并能恢复旧版本。
这里要理解一个关键点,就是svn merge的原理。merge是比较指定版本的差异,然后把这些差异应桐此毕用到本地工作副本,而-r后的14:10,是指相对于版本14来说版本10的变化(注意,这个版本的次序很重要。),也就是相对版本14,我版本10添加了哪些文件或目录,以及哪些文件添加了哪些行删除了哪些行。
由于在客户端提交应用程序时的误操作,导致修改了基线版扒斗本,此处利用两局芹个命令来进行恢复:
1、将客户端恢复合并到指定版本:
1 svn merge -r 112:111 svn://192.168.0.119/UBoot/trunk/u-boot-1.3.3
此步骤将下位机由112恢复到111版本:
2、重新修订基线版本
1 svn commit -m "Undoing change committed in r111."
此步骤将恢复后的111版本提交,但是此时的版本号为113
SVN merge操作
SVN的操作中经常需要将改动从一条分支或者特性合并到主干或者其他分支上。
1、在需要合并的文件夹右键,选择TortoiseSVN-Merge。如果只合并单个文件,直接选中文件,然后右键。
2、在弹出的merge界面中选择merge type为 merge a range of reversions ,点击Next。
3.1、在merge reversion range界面,点击url to merge from输入框右方的浏览按钮,选择要合入的路径简汪。
3.2、在merge reversion range界面,点击reversion range to merge 选择specific range 右方的show log按钮。
3.3、在弹出的select reversion range界面,可以选择输入关键字,则咐雹或者选择日期孙帆,帮助筛选。
svn如何回滚到之前版本
第一种情况:改动没有被提交(mit)。
这种情况下,使用svn revert就能取消之前的修改。
svn revert用法如下:
# svn revert [-R] something
其中something可以是(目录或文件的)相对路径也可以是绝对路径。
当something为单个文件时,直接svn revert something就行了;当something为目录时,需要加上参数-R(Recursive,递归),否则只会将橡让something这个目录的改动。
在这种情况下也可以使用svn update命令来取消对之前的修改,但不建议使用。
因为svn update会去连接仓库服务器,耗费时间。
注意:svn revert本身有固有的危险,因为它的目的是放弃未提交的修改。
一旦你选择了恢复,Subversion没有方法找返判回未提交的修改。
第二种情况:改动已经被提交(mit)。
这种情况下,用svn merge命令来进行回滚。
回滚的操作过程如下:
1、保证我们拿到的是最新代码:
svn update
假设最新版本号是28。
2、然后找出要回滚的确切版本号:
svn log [something]
假设根据svn log日志查出要回滚的版本号是25,此处的something可以是文件、目录或整个项目
如果想要更详细的漏如改了解情况,可以使用svn diff -r 28:25 [something]
3、回滚到版本号25:
svn merge -r 28:25 something
为了保险起见,再次确认回滚的结果:
svn diff [something]
发现正确无误,提交。
4、提交回滚:
svn mit -m "Revert revision from r28 to r25,because of ..."
提交后版本变成了29。
将以上操作总结为三条如下:
1. svn update,svn log,找到最新版本(latest revision)
2. 找到自己想要回滚的版本号(rollbak revision)
3. 用svn merge来回滚: svn merge -r : something
svn cp和merge的区别
svn
cp是复制的意思,配拆败把一部分的代码复制一份一样御含的;merge是合并,是把一个文件培颤的代码合并到另一个文件中,通常是在主干和分支上用的比较多;
svn 使用merge操作,将branch合并到trunk上时,出现了如下图所示的问题,哪位高手帮忙解决啊???
你既然用的是tortoisesvn,那么你不要用复兴分支这个选项,用“合并一个版本范围” 。
我对复兴分支用了解不配消多,抱歉罗。我一般只用merge“合并一个版本范围"。
这样的问题是,万一某个branch使用时间很长,需要多次同步到trunk,必须记录下分支上已经合并过去的版本,以免产生不必要的冲突。看起来,复兴分支的作用在目录的属性中记录了已经合并过什么版本,自动处理一些东西,但我不大会用。
对”合并一个版本范围“,我的理解和你一样。详细说下出问题的操作步骤吧,我还没遇扮卖衫到过merge不成的。
看到你的出错提示里”复兴厅腔“二字,还以为你用的是复兴分支合并方式。
关于svnmerge和svn merge命令的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。