项目需要做一个大的改动,在上线之前从trunk上打了一个branch下来,由于改动比较大,所以这次的改动就在branch修改、打包、测试;
测试完成以后,问题来了,我们需要branch代码merge到trunk上,网上查了一下资料,但是有些人为了赚取所谓的“分儿”,都没有验证的解决方案一顿狂发,下面是经过验证的解决方案:
1. 将branch的代码验证没有问题后,全部提交(此时的提交,是提交到了branch上)
2. 在trunk上,点击右键,选择“team->merge”,会弹出merge对话框,我们的merge应该属于第二种方式,所以选择"Reintegrate a branch",勾选"perForm pre-merge best practices checks",点击"next"(附件3.jpg)
3. 在merge from后,点击"select",从svn目录中选择我们的branch,点击"next"
4. 出现对解决冲突的默认处理,默认就可以,不用选择,默认选择出现冲突会提示我们(prompt me for each conflict and let me decide),对于text files 、Binary files、Property conflicts同样选择默认选项,点击"finish"
5. 此时svn开始从branch上逐个文件merge到trunk上,如果发现文件冲突,系统会弹出提示框询问如何处理冲突,记着我们千万不要选择不处理,冲突一定要解决,要不然很有可能,把其他项目组成员辛辛苦苦写的东西冲突掉得,所以我们应该:
a. 从冲突询问对话框中,我们可以看到我们冲突的资源是什么(Resouce:/xxx/src/com/xxx/xx/xxfile),针对于冲突系统会给出5中选项(what do you want to do?)-附件2.jpg
1. Mark as conflicted, i will deal with it later.
2. Resolve the conflict by using my version of the file.
3. Resolve the conflict by using the incoming version of the file.
4. Let me edit the file with coflict markers inserted.
5. Launch a graphical conflict resolution editor.
显然最稳妥的还是选择最后一项,使用图形编辑器解决这个冲突(就是我们平时提交代码时,解决conflict的界面),至于如何解决冲突,svn使用基本功不说了,解决完成以后,保存
b. 将冲突解决编辑器关闭,系统会自动提示"Are you done resolving conflicts for this file?",显然 i'm sure,所以我们选择"Yes, I resolved all of the conflicts in the file, Mark conflict resolved."(附件1.jpg)
c. svn会继续merge,如果发现冲突系统会继续提示,然后重复以后步骤,直到解决完成,merge工作结束。
d. merge时,可能会由于两个workspace的设置文件不同会有冲突,针对于该冲突,千万不要把branch workspace settings 拿过来,否则我们当前的workspace就不能用了,还得重新down。
相关推荐
svn commit -m "Merge changes from branch to trunk" ``` ##### 5. 修改主干内容 接下来,对 `trunk/examples1` 进行一些更改,并提交这些更改到服务器。 ```bash # 修改trunk/examples1的内容 # 提交更改到...
Number of committers has been determined by going through CVS logs from January 1st, 2004 to December 31st, 2004 and contributors by going through the list of contributions and problem reports. ...
$ svn commit -m "Merge changes from 1396 to 1399" ``` #### 合并追踪 为了更好地管理合并过程,可以使用 `svnmerge.py` 工具。这是一个用 Python 编写的 Subversion 插件,可以自动追踪合并记录。 - 安装 `...
- **Branching Strategies**: Different branching models exist, such as Git Flow, Feature Branch Workflow, and Trunk-Based Development. Choose a strategy that fits the team's needs and project ...
svn ci -m "Merged changes from mybranch to trunk." ``` ##### 4. 版本控制高级操作 - 查看日志: ```bash svn log /path/to/workingcopy ``` - 比较文件差异: ```bash svn diff /path/to/file ``` ...
- 创建分支:`svn copy URL_to/trunk URL_to/branch`,然后在分支上工作。 - 合并分支:`svn merge URL_from/branch`,将分支上的改动合并到主分支。 5. SVN在实际开发中的应用 - 团队协作:SVN确保所有成员都在...
svn commit -m "Merged changes from mybranch to trunk" ``` ##### 5.2 权限控制 SVN提供了一套完善的权限管理系统,可以通过配置文件来实现细粒度的权限控制。 1. **配置权限**:在`conf/authz`文件中定义...
4. 选择导入项目的方式,通常选择“Create a new project from existing source”并选择相应的Myeclipse项目类型。 5. 确认设置后点击“Finish”,Myeclipse会自动创建新项目并从SVN仓库下载源代码。 **四、日常SVN...
在软件开发过程中,分支管理是一个关键环节,它允许团队成员在不影响主线(主分支,通常是trunk或master)的情况下进行独立开发、实验和修复错误。以下是对IntelliJ IDEA中使用SVN分支的详细步骤和概念的介绍。 1. ...