本篇文章主要介绍了"tortoisesvn TortoiseSvn问题研究(一)",主要涉及到tortoisesvn方面的内容,对于软件工程感兴趣的同学可以参考一下:
问题描述今天在工作中遇到一个SVN方面的问题,牵扯出使用SVN这一段时间的一系列问题。具体来说,是这样的:上周五有上线分支,自己的分支需要merge;很多项目小...
问题描述
今天在工作中遇到一个SVN方面的问题,牵扯出使用SVN这一段时间的一系列问题。
具体来说,是这样的:
- 上周五有上线分支,自己的分支需要merge;
- 很多项目小组都在开发这个项目,再往前好像也有上线;
- 按照之前merge方法merge之后出现DAO文件找不到错误;
- 翻看当前主干版本,这些DAO文件都存在;
- 翻看历史记录,发现这些DAO文件是在两个版本之前上线的。
问题分析
到这里,基本上可以怀疑问题原因了,就是自己merge的方法有问题。
那么,再看下merge的步骤
- 右键分支,选择merge
- 默认第一个,下一步;
- 默认(specific version),选择最新版本;
- test merge,没有太大问题,merge
那么,再迟钝,也可以发现,问题一定存在于有选项的地方了吧。
也就是说,merge的选择,这里应该选择第一个,merge all versions

问题延伸
其实我能在这个地方犯这么一个错误,也是挺神奇的。
想之前,在进来选择的地方更容易出错

这里之前,包括今天,都没有搞清楚过,查了下,引用记录如下
SVN merge 三种方式
转载
1、Merge a range of revisions
2、Reintegrate a branch
3、Merge two different trees
——————————————————————————————————————————————————————
以下是转载自chunanyong的一篇关于svn分支合并类型的文章,出处:http://chunanyong.iteye.com/blog/697255
合并的工作是把主干或者分支上合并范围内的所有改动列出,并对比当前工作副本的内容,由合并者手工修改冲突,然后提交到服务器的相应目录里。如果当前工作副本是主干,则合并的范围是分支上的改动,如果工作副本是分支的,则合并范围是主干上的改动,并且一定要注意,合并的起始位置URL一定要和当前的工作副本的URL是相同的。
一、合并一个范围的版本
此类型应用最为广泛,主要是把分支中的修改合并到主干上来。在主干上点击右键选择合并,然后选择合并类型:合并一个范围的版本。
合并的源URL填写的是要合并的分支的URL,待合并的版本范围如果为空,则指的是合并分支上所有的版本,即自从分支创建以来到分支当前最新版本的所有演变。如果只是选择其中一个版本,或者几个版本,那么就表示只是将制定的n个版本的变化合并到主干上。如果只是选择其中一个版本,那么表示只是选择那个版本的修改,之前或之后的修改将不被采纳。
二、复兴合并
复兴合并可以理解为是第一种合并类型的一种特例,在复兴合并中,主干可以理解为是自从开创分支之后没有任何修改,而分支是经过修改的,而且合并中分支是没有版本选择的。经过复兴合并,分支中所有的修改都会合并到主干中,合并的结果将使得分支和主干一模一样,从而可以删除分支。