SVN服务器+Apache

SVN服务器+Apache

SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理

服务安装配置介绍

[root@server ~]# cat /etc/services | grep Subversion
svn             3690/tcp                        # Subversion
svn             3690/udp                        # Subversion

[root@server ~]# yum install subversion httpd mod_dav_svn -y

创建用户管理svn
[root@server ~]# useradd svn
创建版本库目录
[root@server ~]# mkdir /var/repos
[root@server ~]# chown svn:svn /var/repos/
[root@server ~]# ll -d /var/repos/
drwxr-xr-x 2 svn svn 6 7月  20 17:30 /var/repos/

创建项目仓库
[root@server ~]# su - svn
[svn@server ~]$ svnadmin create /var/repos/svn1
[svn@server ~]$ svnadmin create /var/repos/svn2
[svn@server ~]$ ll /var/repos/svn1/
总用量 16
drwxrwxr-x 2 svn svn   51 7月  20 17:31 conf
drwxrwsr-x 6 svn svn 4096 7月  20 17:31 db
-r--r--r-- 1 svn svn    2 7月  20 17:31 format
drwxrwxr-x 2 svn svn 4096 7月  20 17:31 hooks
drwxrwxr-x 2 svn svn   39 7月  20 17:31 locks
-rw-rw-r-- 1 svn svn  229 7月  20 17:31 README.txt

[svn@server ~]$ cd /var/repos/svn1/conf/
[svn@server conf]$ vim svnserve.conf
部分说明
[general]
# anon-access = read	#匿名访问的权限,可以是read,write,none,默认read
# auth-access = write	#认证用户的权限,可以是read,write,none,默认write
# password-db = passwd	#密码数据库路径
# authz-db = authz		#权限验证文件
# realm =				#指定库的认证领域


[svn@server conf]$ vim passwd 

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
# harry = harryssecret	#用户名=密码
# sally = sallyssecret


[svn@server conf]$ vim authz 
[groups]
# harry_and_sally = harry,sally		#组名=<用户1>,<用户2>。
# harry_sally_and_joe = harry,sally,&joe

[/目录]
@<用户组名>	=	<权限>
<用户名>	=	<权限>

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

启动SVN

[svn@server conf]$ svnserve -d -r /var/repos/
-d	表示以daemon方式启动
-r	指定根目录	
[svn@server conf]$ netstat -antup | grep svn
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      20722/svnserve

配置apache

[root@server ~]# vim /etc/httpd/conf/httpd.conf 
User svn
Group svn

[root@server ~]# vim /etc/httpd/conf.d/subversion.conf
<Location /svn>
       DAV svn
       SVNParentPath /var/repos	#仓库根路径
        AuthType Basic	
AuthName " SVN server of bgy!"		#认证窗口消息
   AuthUserFile /home/svn/passwd	#认证用户密码文件
        AuthzSVNAccessFile /home/svn/auth	#权限设置权限
        Require valid-user
</Location>

[root@server ~]# htpasswd -c /home/svn/passwd admin
New password: 
Re-type new password: 
Adding password for user admin

[root@server ~]# touch /home/svn/auth
  1 [/]
  2 admin=rw
  
浏览器:http://192.168.220.138/svn/svn1/ 访问

SVN常用命令

1、将文件checkout到本地目录
svn checkout path
[root@server ~]# svn checkout file:///var/repos/svn1
简写:svn co

2、往版本库中添加新的文件
svn add file
[root@server ~]# cd svn1/
[root@server svn1]# touch 1.txt
[root@server svn1]# svn add 1.txt
A         1.txt


3、将改动的文件提交到版本库
svn commit -m “LogMessage”  PATH
简写:svn ci

4、加锁/解锁
svn lock -m “LockMessage” [--force] PATH
svn unlock PATH

5、更新到某个版本
svn update -r m path
简写:svn up

6、查看文件或者目录状态
1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
2)svn status -v path(显示文件和子目录状态)
简写:svn st

7、删除文件
svn delete path -m “delete test fle”
简写:svn (del, remove, rm)

8、查看日志
svn log path

9、查看文件详细信息
svn info path

10、比较差异
svn diff path(将修改的文件与基础版本比较)
svn diff -r m:n path(对版本m和版本n比较差异)
简写:svn di

11、将两个版本之间的差异合并到当前文件
svn merge -r m:n path

12、SVN 帮助
svn help
svn help ci

发布了65 篇原创文章 · 获赞 48 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/DoloresOOO/article/details/99675820
今日推荐