前言
最近在搭建服务器,用到了版本控制,在搭建过程中也遇到了好多问题,简单写一写
步骤
1、安装SVN
$ sudo apt-get install subversion
2、创建项目目录
$ sudo mkdir svn //创建一个文件夹,用来存放一个或多个项目
$ cd ./svn //进入这个目录
$ sudo mkdir project//创建一个新的项目目录
$ sudo svnadmin create ./svn/project //创建svn文件仓库(这一步是让这个新的文件夹变成svn的版本库)
3、权限设置
$ cd ./svn/project/conf //进入设置目录(包含有authz hooks-env.tmpl passwd svnserve.conf)
$ vim passwd //添加用户设置密码
[users]
root = 123456
user1 = 123456
user2 = 123456
$ vim authz //编辑用户权限
[groups]
admin = user1,user2,root
[/]
@admin=rw
*=r
$ vim svnserve.conf //控制访问权限
[general]
anon-access = none #匿名用户(anonymous users)的访问权限
auth-access = write #授权用户(authenticated users)的访问权限
password-db = passwd #密码数据库文件的位置,这里指向同级目录下的passwd文件
authz-db = authz #用户授权规则文件的位置,这里指向同级目录下的authz文件
4、启动svn
启动svn
$ svnserve -d -r ./svn //这里的/svn 的目录就是你第一步创建用来存放项目的那个目录
关闭svn
在配置过程中如果需要关闭svn则kill
$ ps aux | grep svn
root 21618 0.0 0.0 69596 616 ? Ss 19:07 0:00 svnserve -d -r /svn
root 21927 0.0 0.2 11748 2156 pts/0 S+ 19:10 0:00 grep --color=auto svn
$ kill 21618
5、配置钩子(如果不需要配置到web目录,在上一步完成后既可以检出使用)
$ cd ./svn/project/hooks //在这里svn提供了好的钩子模板,你可以根据自己的情况选择模板,一般都是选择post-commit.tmpl(提交后更新)
$ vim post-commit //新建文件
#!/bin/bash
EPOS="$1"
REV="$2"
TXN_NAME="$3"
export LANG=en_US.UTF-8
/usr/bin/svn update --username root --password 123456 /var/www/项目目录 > /tmp/www.log || exit 1
exit 0
if [ $? == 0 ]
then
echo "ok" >> /tmp/wwww.out
fi
6、设置模板执行权限
$ chmod 755 post-commit
7、先在www目录里检出
$ /usr/bin/svn checkout svn://你的服务器地址/你的版本仓库
注:如果是新买阿里云的服务器记得打开端口访问限制
8、本地检出完成!
现在即可提交并同步到web目录了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。