在eclipse中使用svn管理Web项目主干和分支时(非maven)项目,因为一些特有的文件件或者文件,比如 build文件夹、.classpath文件等,总是产生冲突,导致无法进行合并。本文根据亲身实践,介绍如何实现Web项目使用SVN进行主干分支的管理,并对解决上述问题的方式特别说明。
至于eclipse怎么安装SVN,以及为什么SVN要进行主干、分支、标签这三种形式的管理,不再赘述,自行Google。
首先打开资源库,在资源库中新建 Project Structure,如下图所示
在弹出的对话框中输入项目名称,这个项目名称就直接写eclipse中的项目名称即可,我使用的示例项目名称为“CeShi”
点击OK后,在资源库中会出现 如下图所示的目录
然后在eclipse中新建一个 Web项目,项目名为“CeShi”,建好后如下图所示
将项目提交到SVN服务器下的 CeShi目录下的主干目录 trunk,如下图所示,
完成这一步会有一个问题,在 trunk目录下,没有build这个文件夹,这就会导致后来有冲突,怎么都解决不了。这是需要这样操作一次,将本地项目删除,从SVN资源库trunk下将项目检出,然后在本地项目会看到 build文件夹带了一个小问号,这是再整个项目提交一次,trunk目录下就有build文件夹了,这是一个坑。
创建项目分支,在第2步中,如果选中“start working in the branch”在点击OK按钮后,项目自动切换到分支目录,如第三步所示,但是,最好不要这样做。应该是将项目创建分支后,将本地项目删除,然后再从svn资源库中的branch目录下的相应项目检出。检出后同样如第3步所示
下面进入主要内容:
1、分支合并到主干
在分支中新建一个包,包中新建一个类,然后将分支的修改提交到SVN服务器。如下图所示。
将分支的更新合并到主干,这里有一个非常关键的点。其实,SVN插件提供了一个“Switch”按钮,就在“Branch...”下面第三个,但是,对于Web项目而言,直接切换主干和分支,在合并的时候就会出现无法解决的冲突。所以,正确的操作方式是,将eclipse中的本地项目删除,然后去SVN中将trunk目录的项目“check out”,然后再合并分支,合并后将更新提交到SVN服务器。
2、主干合并到分支,同分支合并到主干一样
异常情况:
当碰到如下这种情况的时候,则在本地项目上点击右键“team”->update to reversion,弹出的对话框点击确认即可。
当我们在主干与分支之间合并的时候,同一个文件,即使没有修改也是会出现不同的版本号,在下一次合并的时候,两个文件就会产生冲突,比如下图这个文件,在主干与分支的版本号就不一样,当将高版本的项目往低版本的项目合并的时候,就会产生冲突,比如现在主干合并到分支就会出现冲突,如图2,解决的办法就是,根据实际情况,在冲突的文件上点击右键,选择“Edit tree confilicts”。弹出的对话框包含几个选项如下图3所示,四个选项中,第一个,是保持本地不便,第二个是更新本地,第三个是不做操作,第四个复选框是标记为冲突解决,一般选择第三个就同时选择第四个复选框。
到这里,我所碰到的坑算是填完了,各位相互学习。原创文章,转载请在文章首部明显部位标识文章链接。