Intellij IDEA的SVN集中式管理项目详解

Intellij IDEA SVN集中式管理项目详解

文前瞎啰嗦

以前使用SVN时,我只使用其简单的更新提交代码,当在一个项目中担任项目管理的你,在没有版本维护管理员的情况下,你不得不去规划版本的迭代及BUG修复。这里详细介绍了从项目构建并纳入SVN版管理,其中SVN关键目录结构说明如下:

  • trunk文件夹:主干,我们一般把项目提交到此文件夹里面,在trunk中开发。
  • branches文件夹:分支,我们一般把那些需要打分支,但是有可能会修改的项目代码,打分支到此目录。
  • tags文件夹:分支,我们一般把那些阶段性(如迭代各期)的项目代码,打分支到此目录。

安装SVN服务

检查是否安装SVN:

rpm -qa subversion

安装SVN:

yum install subversion

配置版本库:

首先创建一个版本库位置,如的位置在/opt/svn/repos
Intellij IDEA的SVN集中式管理项目详解
使用svnadmin配置版本库:

svnadmin create /opt/svn/repos

配置用户及权限:

版本库配置好后,会在其目录下生成一系列的文件/文件夹,主要关注conf文件夹 Intellij IDEA的SVN集中式管理项目详解
authz:认证权限目录
passwd:用户密码目录
svnserve.conf:svn基本配置目录

启动SVN:

svnserve -d -r /opt/svn/

启动完成后,监听端口为3690,为了远程可访问,需要放行该防火墙端口。

TortoiseSVN访问远程仓库:
Intellij IDEA的SVN集中式管理项目详解
默认打开是没有项目的,这里的项目测试后面会讲到,至此,SVN服务器的安装已完毕。

Intellij IDEA中使用SVN

进入IDEA,创建一个普通的SpringBoot项目,模拟项目管理。
Intellij IDEA的SVN集中式管理项目详解
创建完成后,通过IDEA提供的VCS,将项目共享至刚才搭建的SVN服务器上。这里要注意一下,IDEA默认使用的SVN执行命令是基于当前操作系统的PATH定义的svn,如我的环境变量所示:
Intellij IDEA的SVN集中式管理项目详解
如果没有配置环境变量,将会出现以下错误:
Intellij IDEA的SVN集中式管理项目详解
当然,由于我们已经安装了TortoiseSVN客户端,故可以更改IDEA的执行配置,去掉使用svn选项,如图:
Intellij IDEA的SVN集中式管理项目详解
这样,就可以在IDEA中使用SVN,这里将项目共享至SVN服务器:
Intellij IDEA的SVN集中式管理项目详解
默认是没有仓库位置的,需要自行添加刚才的版本库,我这里已经添加好了,选择默认共享至trunk目录,这是IDEA的强大之处,都给你想好了,把三个主要目录创建了,在非IDEA下,需要自行创建这些目录。
Intellij IDEA的SVN集中式管理项目详解
共享完成后,并不是就可以了,服务器只是创建了相应的远程文件夹,还需要同步工程至版本服务器中,默认所有文件都纳入SVN管理了,如图呈绿色,但是很多文件是IDEA生成的,与项目毫无关系,此时需要配置一个change list,即提交时忽略列表内定义的文件,类似git服务器的.gitignore。
Intellij IDEA的SVN集中式管理项目详解
创建Change List
Intellij IDEA的SVN集中式管理项目详解
Intellij IDEA的SVN集中式管理项目详解
创建完成后,打开Default目录,可以将不需要纳入版本控制的文件或文件夹放入该changelist中,以后整体提交代码时,这些文件或文件夹就不会一起提交到版本库了。
Intellij IDEA的SVN集中式管理项目详解
Intellij IDEA的SVN集中式管理项目详解
完成了以上配置,便可以把项目提交至SVN服务器了,将交由SVN管理该项目:
Intellij IDEA的SVN集中式管理项目详解
Intellij IDEA的SVN集中式管理项目详解
提交完成后,可以发现,项目目录下,忽略的文件及文件夹还是绿色的,说明没有纳入版本管理,提交了的更新已经变成了灰色
Intellij IDEA的SVN集中式管理项目详解
此时,基本功能已经完成,开发者便可以基于此进行开发了,当项目达到一定的程度要切分版本,这里便要用到上文提到的branches及tags分支。默认是在tunk目录下:
Intellij IDEA的SVN集中式管理项目详解
从trunk新建一个分支进行迭代开发:
Intellij IDEA的SVN集中式管理项目详解
Intellij IDEA的SVN集中式管理项目详解
为了查看是否成功,我们通过TortoiseSVN客户端查看仓库情况:
Intellij IDEA的SVN集中式管理项目详解
IDEA切换分支进行迭代开发演示:
Intellij IDEA的SVN集中式管理项目详解
Intellij IDEA的SVN集中式管理项目详解
确认后,查看当前项目的SVN信息,可以看到已经切换至1.0.1分支了。
Intellij IDEA的SVN集中式管理项目详解
在代码中添加所要迭代的逻辑,完成后提交,最终合并代,打TAG,都是很熟悉的步骤,这里就不再赘述了。
Intellij IDEA的SVN集中式管理项目详解