代码管理平台,SVN

代码管理平台介绍

版本控制,记录若干文件内容变化,以便将来查阅特定版本修订情况
版本管理工具发展简史,cvs svn  git
git和svn不同在于git不需要依赖服务端就可以工作,即git是分布式的
github是基于git的在线web页面代码托管平台,可以选择付费服务
gitlab可以认为是一个开源的github,两者没有直接关系

SVN平台

SVN是一个C/S架构,需要架设一个服务端

安装SVN服务端:

[root@shuai-01 ~]# yum install -y subversion

安装完成后,创建版本库:

[root@shuai-01 ~]# mkdir -p /data/svnroot/myproject
[root@shuai-01 ~]# svnadmin create /data/svnroot/myproject
[root@shuai-01 ~]# ls -la /data//svnroot/myproject/
总用量 8
drwxr-xr-x. 6 root root  86 9月  26 18:41 .
drwxr-xr-x. 3 root root  23 9月  26 18:40 ..
drwxr-xr-x. 2 root root  54 9月  26 18:41 conf
drwxr-sr-x. 6 root root 233 9月  26 18:41 db
-r--r--r--. 1 root root   2 9月  26 18:41 format
drwxr-xr-x. 2 root root 231 9月  26 18:41 hooks
drwxr-xr-x. 2 root root  41 9月  26 18:41 locks
-rw-r--r--. 1 root root 229 9月  26 18:41 README.txt

配置SVN文件

[root@shuai-01 ~]# cd /data/svnroot/myproject/conf/
[root@shuai-01 conf]# ls
authz  passwd  svnserve.conf

authz :权限配置文件
passwd :密码文件
svnserve.conf : 仓库配置文件

权限配置文件:

[root@shuai-01 conf]# vim authz 
	[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

# [/foo/bar]
# harry = rw
# &joe = r
# * =

在这里插入图片描述

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admins = shuai,user1  ##admins组名,包含两用户,帅,user1

# [/foo/bar]
# harry = rw
# &joe = r
# * =
[/]    ##项目,admins组有读写权限,其他人只有读权限
@admins = rw
* = r

[myproject:/]
@admins = rw
* = r

密码文件:

[root@shuai-01 conf]# vim passwd 

[users]
# harry = harryssecret
# sally = sallyssecret
shuai = shuai
user1 = password

左边是用户名,右边是密码

仓库配置文件:

[root@shuai-01 conf]# vim svnserve.conf 
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /data/svnroot/myproject

[general]
anon-access = none #没有被授权的用户的权限
auth-access = write #被授权用户的权限
password-db = passwd #密码文件
authz-db = authz #权限控制文件
realm = /data/svnroot/myproject #仓库(项目)生效

启动:

[root@shuai-01 conf]# svnserve -d -r /data/svnroot/

[root@shuai-01 conf]# ps aux |grep svn 
root       3385  0.0  0.0 162200   660 ?        Ss   19:30   0:00 svnserve -d -r /data/svnroot/
root       3387  0.0  0.0 112680   968 pts/0    S+   19:30   0:00 grep --color=auto svn
[root@shuai-01 conf]# netstat -lntp |grep svn
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      3385/svnserve 

客户端上使用SVN
linux:
首先,客户端也需要安装subversion

[root@shuai-01 ~]# yum install -y subversion

从来没连接过SVN,最开始使用要先执行命令,以检出SVN项目

[root@shuai-01 home]# cd svntest/
[root@shuai-01 svntest]# ls
[root@shuai-01 svntest]# svn checkout svn://192.168.176.135/myproject --username=shuai

登录上去:

保存未加密的密码(yes/no)?yes
取出版本 0。
[root@shuai-01 svntest]# ls
myproject

在项目中增加文件:

[root@shuai-01 myproject]# svn add .
svn:  警告: W150002: “/home/svntest/myproject”已纳入版本控制
svn: E200009: 因为一些目标已经版本化,所以不能增加全部目标
svn: E200009: 此请求操作的目标非法

增加完之后,才能把文件上传到服务端

[root@shuai-01 myproject]# svn commit -m "add fatab"

其它客户端要使用SVN时,需要在服务端上拉下来:

svn update //把当前目录下的文件都更新到最新版

 svn delete filename  //在本地删除
 svn commit -m “delete filename” //在服务器上删除
 svn log //查看变更日志

Windows:
安装tortoiseSVN
使用教程:https://www.jianshu.com/p/6b3b7b915332

猜你喜欢

转载自blog.csdn.net/aoli_shuai/article/details/82861110