创建svn服务器
1、首先安装SVN这个软件
apt-get install subversion
2、在home目录下创建一个名为svn的文件夹(文件夹的名字随便起)
mkdir /home/svn
3、创建数据仓库(可以根据需要创建多个)
svnadmin create /home/svn/test
4、启动svn网络服务
svnserve -d -r /home/svn
其中 -d 参数让 svnserve 运行在后台,-r 参数限定了数据仓库,在网络上可以访问的地址。 /home/svn指定svn数据仓库存放的目录位置
5、设置svn: 方式的访问权限
在每个数据仓库目录下都有一堆目录,进入 conf 并打开 svnserve.conf 这个文件,找到以下几行, 并把前面的注解符号 ‘#’ 去掉,注意千万在每行的前面别留任何空格。
anon-access = read
auth-access = write
password-db = passwd
其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限。 但如果想拒绝匿名用户的访问,只需把 anon-access的read 改成 none 就能达到目的。password-db 后的 passwd 则为定义用户名及密码的文件路径。这个文件默认跟 snvserve.conf 在同一个目录,下面看看怎么配置 passwd文件中的内容。
[user]
# harry = harryssecret
# sally = sallyssecret
harry 和 sally 这两行分别定义了可以对 repo 进行写入的用户的用户名和密码。我们可以在下面加上自己的用户名和密码,比如
testsvn = tester
这样就给了用户 testsvn 往 repo 中写的权限。存盘退出后,svn 服务器就算正式可以运行了!
把所有需要管理的项目都放在 /home/svn这个目录下,像正常那样用 svnadmin create 命令建立数据仓库。
这样就可以使用svn客户端通过 “svn co svn://IP地址/数据仓库目录” 的方式把服务器上的数据仓库拉到本地了。
最近升级了下linode,发现svn 不能提交和更新,报svn: E000061: Unable to connect to a repository at URL这样的错误,后来查了些资料,原来是svn的端口没有打开,svn的默认端口是3690,在ubuntu里查看端口打开情况,命令是 netstat -anp,把svn服务重新启动下就可以了,命令为svnserve -d -r /home/svn
设置更新同步网站
SVN同步版本库与网站目录
定义:
SVN版本库 = /home/svn/repos
网站目录 = /var/www/web
www.2cto.com
1.检出一个项目到网站目录
#svn checkout file:///home/svn/repos /var/www/web
这时,网站目录已成为SVN的工作副本,我们要做的就是让这个工作副本自动更新。
3.增加hooks(钩子)文件
# vim /home/svn/repos/hooks/post-commit
#!/bin/sh
export LANG="zh_CN.UTF-8" #防止乱码
svn update /var/www/web --username user1 --password password1 --no-auth-cache
保存后修改文件权限为755,否则SVN无法调用执行
#chmod 755 /home/svn/repos/hooks/post-commit
hooks(钩子)文件说明:
# start-commit 提交前触发事务
# pre-commit 提交完成前触发事务
# post-commit 提交完成时触发事务
# pre-revprop-change 版本属性修改前触发事务
# post-revprop-change 版本属性修改后触发事务