ubuntu环境下部署SVN自动更新总结

1、安装SVN。

sudo apt-get install subversion

2、创建svn根目录(SVN)

sudo mkdir /home/ubuntu/SVN

3、创建项目仓库

  • 首先在SVN根目录下创建一个新文件夹(T01)。
sudo mkdir /home/ubuntu/SVN/T01
  • 使用svn命令创建SVN文件仓库
sudo svnadmin create /home/ubuntu/SVN/T01

4、配置SVN

  • 打开刚才创建的项目仓库(T01),里面会有一个conf文件夹,打开conf文件夹。
  • svnserve.conf:svn服务配置文件
  • passwd:设置用户名和密码
  • authz:设置管理用户组和权限需要用到

4.1、首先设置打开passwd文件设置用户名和密码。

......

[users]
admin = admin123

#备注:admin是用户名、admin123是密码、(=)号前后有一个空格。

4.2、打开authz文件设置用户所属分组和权限

[groups]
group_admin  = admin

[/]
@group_admin  = rw 

#备注:
# group_admin是用户分组名、admin是刚才我们添加的用户名称。可以根据需要添加多个分组

# [/]:表示所有文件夹的操作权限
# [a:/]:表示a文件夹下的所有文件的操作权限
# @group_admin: 表示为group_admin分组内的用户赋予权限
# r :表示读的权限
# w :表示写的权限
# rw :表示读写的权限都有

4.3、打开svnserve.conf文件修改svn服务配置

  • 删除下面内容的前面的 #
anon-access = none
	表示匿名用户的权限
auth-access = write
	表示认证用户的权限
password-db = passwd
	表示使用用户名密码
authz-db = authz
	表示使用权限认证

5、启动svn服务

sudo svnserve -d -r  /home/ubuntu/SVN
  • 其中 -d 表示守护进程, -r 表示在后台执行
  • /home/ubuntu/SVN 为svn的根目录

6、查看svn服务是否启动

  • 首先查看svn的进程id
ps -ef|grep svn

#备注:
# ps -ef  #表示查看所有进程
# grep    #表示进行筛选

7、连接svn

1、在服务器上创建需要存放的文件夹www

mkdir www
    
2、进入www文件夹

cd /www      #进入要更新的目录

3、执行命令

svn co svn://IP地址

8、杀死svn进程

kill -9 进程id

killall svnserve

9、卸载svn

sudo apt-get remove --purge subversion

10、Windows本地无权限上传问题

  • Windows本地提交的时候,提交失败,提示错误:/db/txn-current-lock': Permission denied
  • 网上查询得知,是因为用户不同的原因,执行如下命令完美解决:
sudo chmod -R o+rw  /home/ubuntu/SVN

#备注:/home/ubuntu/SVN是你项目库的根目录的路径

11、创建钩子文件

# 1、打开svn下的hooks文件夹,复制post-commit.tmpl文件并去掉后缀.tmpl

cp -a post-commit.tmpl post-commit

# 2、给post-commit增加可执行权限

chmod +x post-commit

# 3、编辑post-commit的内容


#!/bin/sh 

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

svn update /home/ubuntu/www || exit 1

#备注:/home/ubuntu/www是文件保存的位置路径


# 4、在当前文件目录下执行post-commit文件进行测试

./post-commit

#备注:创建钩子文件后,需要重启svn服务。

参考资料:

原文地址:https://www.cnblogs.com/jasontang369/p/9390891.html