svn安装及使用
Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统.
- repository(源代码库):源代码统一存放的地方;
- Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份;
- Commit(提交):当你已经修改了代码,你就需要Commit到repository;
- Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更;
第一步:通过yum命令安装svnserve
yum install -y subversion
此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行
查看svn安装位置:
rpm -ql subversion
第二步:创建版本库目录
(此仅为目录,为后面创建版本库提供存放位置)
mkdir /var/svn/svnrepos -p
第三步:创建svn版本库
(第二步建立的路径基础上)
svnadmin create /var/svn/svnrepos/myrepo1
创建成功后,进入mytest目录下
cd /var/svn/svnrepos/myrepo1/
进入目录,可以看见如下文件信息:
ll /var/svn/svnrepos/myrepo1
total 24
drwxr-xr-x 2 root root 4096 Feb 11 16:26 conf
drwxr-sr-x 6 root root 4096 Feb 11 16:26 db
-r--r--r-- 1 root root 2 Feb 11 16:26 format
drwxr-xr-x 2 root root 4096 Feb 11 16:26 hooks
drwxr-xr-x 2 root root 4096 Feb 11 16:26 locks
-rw-r--r-- 1 root root 229 Feb 11 16:26 README.txt
第四步:修改配置文件
进入已经创建好的版本库目录下,也就是前文说创建的xxxx
进入conf
cd /var/svn/svnrepos/mytest/conf
conf目录下,一共存放三份重要的配置文件,如下:
[root@localhost conf]# ll
total 12
-rw-r--r-- 1 root root 1080 Nov 21 11:35 authz
-rw-r--r-- 1 root root 309 Nov 21 11:35 passwd
-rw-r--r-- 1 root root 3090 Nov 21 11:35 svnserve.conf
解释:
authz :负责账号权限的管理,控制账号是否读写权限
passwd :负责账号和密码的用户名单管理
svnserve.conf :svn服务器配置文件
[root@localhost conf]# vim authz
[/]
michael = rw
michelle = r
[root@localhost conf]# vim passwd
michael = michael
michelle = michelle
[root@localhost conf]# vim svnserve.conf
anon-access = read
auth-access = write
password-db = passwd
realm = My First Repository
第五步:防火墙配置
#!/bin/bash
/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
/etc/init.d/iptables save
service iptables restart
六:启动svn服务器
svnserve -d -r /var/svn/svnrepos
查看服务是否启动成功
ps -aux | grep svnserve 或
ps -ef | grep svnserve
七:客户端访问svn服务器
地 址:svn://192.168.168.200:3690/xxxx
端 口:3690
版本库:xxxx
(弹出用户名和密码输入框,输入即可)
- 新建版本库目录
[root@localhost ~]# mkdir /opt/svn - 利用svn命令创建版本库
[root@localhost ~]# svnadmin create /opt/svn/runoob - 使用命令svnserve启动服务
[root@localhost ~]# svnserve -d -r 目录 --listen-port 端口号
parameter | description |
---|---|
-d [–daemon] | daemon mode |
-r [–root] ARG | root of directory to serve |
–listen-port ARG | listen port (不加此参数,SVN默认监听3690) |
–listen-host ARG | listen hostname or IP address |
由于-r 配置方式的不一样,SVN启动就可以有两种不同的访问方式
方式一:-r直接指定到版本库(称之为单库svnserve方式)
[root@localhost ~]# svnserve -d -r /opt/svn/runoob
在这种情况下,一个svnserve只能为一个版本库工作。
authz配置文件中对版本库权限的配置应这样写:
[groups]
admin=user1
dev=user2
[/]
@admin=rw
user2=r
使用类似这样的URL:svn://192.168.0.1/ 即可访问runoob版本库
方式二:指定到版本库的上级目录(称之为多库svnserve方式)
[root@localhost ~]# svnserve -d -r /opt/svn
这种情况,一个svnserve可以为多个版本库工作
authz配置文件中对版本库权限的配置应这样写:
[groups]
admin=user1
dev=user2
[runoob:/]
@admin=rw
user2=r
[runoob01:/]
@admin=rw
user2=r
如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录。
使用类似这样的URL:svn://192.168.0.1/runoob 即可访问runoob版本库。
打开global-ignores注释:添加配置忽略信息
global-ignores = */.settings/* .classpath */.idea/*
svn更新后的转态
U:表示从服务器收到文件更新了
G:表示本地文件以及服务器文件都已更新,而且成功的合并了
A:表示有文件或者目录添加到工作目录
R:表示文件或者目录被替换了.
C:表示文件的本地修改和服务器修改发生冲突