基于SSH的SVN搭建

一、SVN的概述;

概述:subversion(简称svn)是近几年崛起的版本管理软件,SVN=版本控制+备份服务器,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件。SVN自由,开源的版本控制系统,核心数据仓库---Repository,工作空间---Workspace;

优势: 
  协作开发 ;
  版本回退 ;
  查看项目代码修改历史(领导可以掌控项目的开发进度);

 

二、SVN的工作流程;

访问方式:

1.独立服务器访问:svn://svn.test.com/test

2.借助Apache等http服务:http://svn.test.com/test

交互流程:

 

 

 

三、案例:搭建SVN版本控制器结合ssh实现访问权限控制;

案例环境:

系统类型

IP地址

主机名

所需软件

Centos 7.4 1708 64bit

192.168.100.101

svn.linuxfan.cn

subversion

Centos 7.4 1708 64bit

192.168.100.102

client.linuxfan.cn

 

Win7-1

192.168.100.200

client

tortoise

 

SVN账户:

用户名

权限

zs

linuxfan

rwx

ls

ww

 

r-x

 

案例步骤:

  • 安装SVN程序并准备存储仓库;
  • 配置SVN账户并给予权限;
  • svn服务端阶段上传测试数据;
  • linux客户端操作使用svn程序;
  • windows客户端安装客户端程序;
  • windows客户端使用ww用户在svn程序检出数据;
  • windows客户端节点使用ww用户删除svn库中数据;
  • windows客户端使用zs用户检出数据并且删除数据;
  • windows客户端使用zs用户上传项目开发代码;
  • windows客户端使用zs用户回滚提交的数据;
  • windows客户端使用zs用户比较不同代码的异同点;
  • windows客户端使用zs用户导出项目的开发代码;

 

 

  • 安装SVN程序并准备存储仓库;

[root@svn ~]# yum -y install subversion                     下载svn

[root@svn ~]# tail -1 /etc/sysconfig/svnserve                

OPTIONS="-r /var/svn"

[root@svn ~]# mkdir -p /var/svn/project  创建仓库

[root@svn ~]# svnadmin create /var/svn/project/  创建项目

[root@svn ~]# ls /var/svn/project/

conf  db  format  hooks  locks  README.txt

[root@svn ~]# systemctl start svnserve

[root@svn ~]# systemctl enable svnserve

Created symlink from /etc/systemd/system/multi-user.target.wants/svnserve.service to /usr/lib/systemd/system/svnserve.service.

[root@svn ~]# netstat -utpln |grep svn

tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      1136/svnserve

 

  • 配置SVN账户并给予权限;

[root@svn ~]# useradd zs 创建3个用户

[root@svn ~]# useradd ls

[root@svn ~]# useradd ww

[root@svn ~]# echo 123123 |passwd --stdin zs

更改用户 zs 的密码 。

passwd:所有的身份验证令牌已经成功更新。

[root@svn ~]# echo 123123 |passwd --stdin ls

更改用户 ls 的密码 。

passwd:所有的身份验证令牌已经成功更新。

[root@svn ~]# echo 123123 |passwd --stdin ww

更改用户 ww 的密码 。

passwd:所有的身份验证令牌已经成功更新。

[root@svn ~]# groupadd linuxfan 创建组

[root@svn ~]# gpasswd -M zs,ls linuxfan 将再zs,ls,放在linuxfan组中

 

[root@svn ~]# getfacl /var/svn/project/              获取文件访问控制列表

getfacl: Removing leading '/' from absolute path names

# file: var/svn/project/

# owner: root

# group: root

user::rwx

group::r-x

other::r-x

[root@svn ~]# setfacl -R -m g:linuxfan:rwx /var/svn/project/ 设置linuxfan组对/var/svn/project这个文件有最高权限

[root@svn ~]# setfacl -R -m u:ww:rx /var/svn/project/ ##最少需要拥有rx权限,否则将无法检出

[root@svn ~]# chown root:root /var/svn/project/

[root@svn ~]# chmod 770 /var/svn/project/

[root@svn ~]# getfacl /var/svn/project/

getfacl: Removing leading '/' from absolute path names

# file: var/svn/project/

# owner: root

# group: root

user::rwx

user:ww:r-x

group::r-x

group:linuxfan:rwx

mask::rwx

other::---

 

  • svn服务端阶段上传测试数据;

[root@svn ~]# svn mkdir file:///var/svn/project/trunk1 -m 'create' ##-m选项后参数随意

提交后的版本为 1。

[root@svn ~]# svn mkdir file:///var/svn/project/trunk2 -m 'create'

提交后的版本为 2。

[root@svn ~]# svn mkdir file:///var/svn/project/trunk3 -m 'create'

提交后的版本为 3。

[root@svn ~]# svn import /etc/init.d/ file:///var/svn/project/trunk4/ -m 'import'

正在增加       ...

...

提交后的版本为 4。

[root@svn ~]# svn list  file:///var/svn/project/

trunk1/

trunk2/

trunk3/

trunk4/

[root@svn ~]# svn list  file:///var/svn/project/trunk4

...所有子目录及文件

[root@svn ~]# svn checkout file:///var/svn/project/trunk4 /tmp/ ##检出svn中的文件

[root@svn ~]# ls /tmp/

authconfig  ebtables-config   iptables-config  modules          readonly-root  selinux

cbq         firewalld         irqbalance       netconsole       rsyncd         sshd

console     grub              kdump            network          rsyslog        svnserve

cpupower    init              kernel           network-scripts  run-parts      wpa_supplicant

crond       ip6tables-config  man-db           rdisc            saslauthd

[root@svn ~]# svn delete file:///var/svn/project/trunk4/ ##删除svn版本库中文件

 

  • linux客户端操作使用svn程序;

[root@client ~]# yum -y install subversion

[root@client ~]# svn list svn+ssh://zs@192.168.100.101/var/svn/project/

zs@192.168.100.101's password:

trunk1/

trunk2/

trunk3/

trunk4/

[root@client ~]# svn list svn+ssh://zs@192.168.100.101/var/svn/project/trunk4/

zs@192.168.100.101's password:

authconfig

cbq/

console/

cpupower

crond

...

 

  • windows客户端安装客户端程序;

 

 

 

 

 

  • windows客户端使用ww用户在svn程序检出数据;

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值