源码搭建svn

、准备工作

环境准备:服务器一台:192.168.1.116

    subversion-1.6.1.tar.gz

    subversion-deps-1.6.1.tar.gz

    包下载地址:4ajb

将安装包上传到服务器:

安装依赖包:

    yum install gcc openssl openssl-devel expat -y

二、安装

解压两个源码包

tar xzvf subversion-1.6.1.tar.gz
tar xzvf subversion-deps-1.6.1.tar.gz

cd subversion-1.6.0
./configure --prefix=/usr/local/svn/

若出现以下错误忽略

configure: WARNING: we have configured without BDB filesystem support

make -j4
make install

安装成功

进入SVN目录

cd /usr/local/svn && ls

bin  build-1  include  lib  share

查看SVN版本

[root@postfix svn]# bin/svnserve --version
svnserve,版本 1.6.0 (r36650)
   编译于 Apr  7 2020,13:28:05

版权所有 (C) 2000-2009 CollabNet。
Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。

下列版本库后端(FS) 模块可用: 

* fs_fs : 模块与文本文件(FSFS)版本库一起工作。

将SVN添加到环境变量中:   export PATH="$PATH:/usr/local/svn/bin"

    vim /etc/profile

export PATH="$PATH:/usr/local/svn/bin"

刷新权限

    source /etc/profile

三、建立一个测试仓库

mkdir -p /data/svn/svntest
svnadmin create /data/svn/svntest/

修改配置文件

    cd /data/svn/svntest/conf

    vim svnserver.conf

#将下面语句去掉注销并修改,  保存退出
anon-access = none        # 使非授权用户无法访问
auth-access = write       # 使授权用户有写权限
password-db = passwd
authz-db = authz          # 访问控制文件

    vim psswd

#新增test用户,密码test

[users]
# harry = harryssecret
# sally = sallyssecret
test = test            

    vim authz

指定SVN用户拥有的目录权限

[/]
test = rw
* =

运行SVN, 如果3690端口被占用,  后面可以加上  --listen-port 3391

    svnserve -d -r /data/svn

[root@postfix conf]# svnserve -d -r /data/svn/
[root@postfix conf]# lsof -i:3690
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
svnserve 79507 root    3u  IPv4  62570      0t0  TCP *:svn (LISTEN)

四、Windows安装TortoiseSVN

    地址: https://tortoisesvn.net/downloads.html

    选择适合自己的版本,楼主选择的是1.10.5-64

    本地安装TortoiseSVN软件,选择对应的安装目录, 

    右击SVN检出, 输入版本库URL,点击确定

    输入之前的设置账户和密码

 

 

五、 SVN钩子(hooks)自动部署代码到web目录

    切换到SVN中hooks目录

    /data/svn/svntest/hooks

    cp post-commit.tmpl post-commit

    修改文件,添加内容

#!/bin/sh
export LANG=en_US.UTF-8
/usr/local/svn/bin/svn update /usr/local/nginx/html --username test --password test
# POST-COMMIT HOOK

给post-commit 加上执行权限

    chmod +x post-commit

    svn checkout svn://192.168.1.116/svntest /usr/share/nginx/html --username=test --password=test

[root@postfix html]# svn checkout svn://192.168.1.116/svntest /usr/share/nginx/html --username=test --password=test
-----------------------------------------------------------------------
注意!  你的密码,对于认证域:

   <svn://192.168.1.116:3690> 2ef4f42c-7893-11ea-95fa-a9ab807487e3

只能明文保存在磁盘上!  如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。

你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)?y
请输入 'yes' 或 'no': yes
取出版本 0。

在同步的目录新建一个ddd.txt的文件,然后写入内容

    右键点击提交(SVN Commit)可能会报下面图片错误

    在post-commit的配置中注释掉这一行,然后再次右键提交

    服务器进入 /usr/local/nginx/html  也就是前面post-commit的配置

    

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章