一、目的
简单记录svn的merge操作,特别是merge时的from,to很容易根据字面意思弄错。
二、操作
1. 本地创建Testing目录,里面自动包含三个文件夹branches,tags, trunk.
2. trunk目录下创建examples1目录,里面添加文件hello.c,之后commit到server.
3. 创建分支到branches/examples1。
1. 在trunk的examples1目录,选择Branck/tag,创建分支。
2. 路径选择branches/examples,并添加注释,之后点击OK。点确定后,svn服务器上已经将trunk的examples1copy到branches/examples1了,但是没有自动同步到本地。需要本地update目录才能下载分支。
.
3. update本地Testing目录后,代码下载到本地。
4. 修改branch/examples1下的内容(修改hello.c,添加hello.h),并commit到服务器。
5. 将branch下的exmples1合并到trunk的examples1.
a. 在trunk下的examples1目录选择merge功能。
b. 选择differenttree
c. 在From中选择trunk的路径,在to中选择branches路径。在merge时,前后版本会先比较内容,再将差异部分copy到本地。From是左边,类似于原始版本,to是右边,类似于修改后的程序。
d. merge之后,branches的内容已经更新到trunk目录,之后通过commit,将内容放到服务器。
6. 修改trunk/examples1的内容,并commit到服务器
7. Trunk Merge到Branches
a. 在Branches/examples1目录,右键选择Merge功能。之后仍然选择differenttree。
b. 之后选择路径,from选择branches,to选择trunk。
c. 点OK后,trunk的内容就合并到了branches。之后commit到服务器就Ok。
三、总结
1. 如果merge时出现冲突,需要小心处理。
2. 在使用merge功能时,一定要在合并目的地选择merge功能,而不是在数据源处选择merge。
3. 里面的from和to很容易被字面意思搞混,容易理解成“从。。到。。”。其实可以理解为,from为左边,起始状态,to为右边,最终状态。他们之间会做diff比较,之后将to的内容更新到from。
4. svn操作记录从版本25-29.