【Linux】Centos下安装SVN并将本地项目提交到SVN

[TOC]

1、 安装

1
yum install subversion

创建仓库

1
2
3
mkdir /home/svnrepo  #创建仓库目录
svnadmin create /home/svnrepo #指定为代码仓库
cd /home/svnrepo #进入目录

有如下内容:

svndir

后续操作的配置文件均在conf目录下。

2、 配置

进入conf目录,查看文件,分别作用如下

1
2
3
authz # 权限配置文件 
passwd #账号密码配置文件
svnserve.conf #服务配置文件

2.1 配置用户

1
vim passwd

[users]下面添加用户,添加格式为 username = password

adduser

2.2 配置用户组和权限

1
vim authz

[groups]:为用户分组,根据项目,部门可以进行分组,配置格式如下

groupname = username,username

[仓库路径]: 为仓库路径配置权限,如/是根路径,/project1 是项目1;如若细分可以继续分为项目的某个文件或文件夹。权限如下:

r : 只读

rw:读写

空:不可读不可写

指定用户规则如下:

username:指定某个用户

@groupname : 指定用户组

*:其他用户

configeauth

2.3 配置svn

1
vim svnserve.conf

打开下面的5个注释

anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #用户账号文件名
authz-db = authz #权限配置文件名
realm = /home/svnrepo # 仓库所在目录

confserver

3、启动停止

1
2
svnserve -d -r /home/svnrepo #启动
killall svnserve #停止

4、客户端连接

客户端使用小乌龟TortoiseSVN连接,连接地址是:svn://ip地址
connect
这里使用admin登陆,因为现在连接的仓库路径默认是/,而配置里面对/的配置权限最大的是admin

auth

5、导入项目

5.1、导入目录项目

  • 进入项目所在的目录
  • 设置忽略文件,比如Maven生成的target目录不需要上传、本地开发环境的配置。

    鼠标右键“TortoiseSVN”– >“Settings”

    找到General中的”Global ignore pattern”
    添加:target *.settings .classpath .project

  • 继续右键 –》TortoiseSVN–》Import导入项目到仓库
    loacltoserve

  • 确认项目添加的仓库
    confirmtoserver
  • 然后可以在svn管理中,看到刚刚上传的代码
    成功上传到仓库

添加版本管理

如果需要继续管理代码版本,则把之前仓库的代码在checkout到当前目录,把原来没有版本控制的文件覆盖掉。
add
后续有代码变动,只需右键commit即可
成功

5.2、导入IDEA项目

如果是正在开发中的项目,或者是需要一边开发一边提交的情况,可以直接在IDEA添加版本控制。每当代码完成之后便可以提交到仓库中。(多人协同开发记得update再commit,不然会冲突;或者把别人的代码覆盖。

  • 将项目分享到SVN
    share
  • 添加刚刚的仓库地址
    addrepo
  • 查看这个版本控制选项卡
    vc
  • 需要提交的代码勾选即可
    按需提交
  • 这里是使用IDEA提交的代码
    result

6、总结

  1. svn如何配置

    使用svnadmin create 指定仓库路径之后会自动生成一些文件,其中配置文件在conf下。主要有如下配置:

    • 用户配置:passwd文件
    • 权限配置:authz文件
    • 服务配置:svnserve.conf文件
  2. 如何将本地项目添加svn管理

    • 文件目录中的代码,先import再checkout
    • idea在VCS中share 到 svn
  3. svn作为一个协同开发管理工具,还有很多需要学习的地方,包括版本号管理,发生冲突如何解决,如何进行分支开发等等。