服务器设置和教程 · 5 10 月, 2024

CentOS 6.8 搭建 SVN 並用鉤子自動實現同步到 Web 目錄

CentOS 6.8 搭建 SVN 並用鉤子自動實現同步到 Web 目錄

在當今的軟體開發環境中,版本控制系統是不可或缺的工具之一。Subversion(SVN)是一個流行的版本控制系統,廣泛應用於軟體開發中。本文將介紹如何在 CentOS 6.8 上搭建 SVN 伺服器,並利用鉤子(hook)自動將代碼同步到 Web 目錄。

一、安裝 SVN

首先,我們需要在 CentOS 6.8 上安裝 SVN。可以通過以下命令來安裝:

sudo yum install subversion

安裝完成後,可以使用以下命令來檢查 SVN 是否安裝成功:

svn --version

二、創建 SVN 倉庫

接下來,我們需要創建一個 SVN 倉庫。可以使用以下命令來創建一個名為 myrepo 的倉庫:

svnadmin create /path/to/myrepo

請將 /path/to/myrepo 替換為您希望存放倉庫的實際路徑。

三、設置權限

為了讓 SVN 倉庫能夠被訪問,我們需要設置適當的權限。可以使用以下命令來設置權限:

chown -R apache:apache /path/to/myrepo

這裡假設您使用的是 Apache 伺服器,若使用其他伺服器,請根據實際情況調整。

四、配置 Apache 支持 SVN

要使 SVN 倉庫能夠通過 HTTP 訪問,我們需要配置 Apache。首先,確保已安裝 mod_dav_svn 模組:

sudo yum install mod_dav_svn

然後,編輯 Apache 的配置文件(通常位於 /etc/httpd/conf/httpd.conf),添加以下內容:



    DAV svn
    SVNPath /path/to/myrepo
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /etc/svn-auth-file
    Require valid-user

接著,創建一個用戶認證文件:

htpasswd -cm /etc/svn-auth-file username

最後,重啟 Apache 伺服器以使配置生效:

sudo service httpd restart

五、設置鉤子自動同步到 Web 目錄

為了實現代碼的自動同步,我們可以使用 SVN 的鉤子功能。在倉庫的 hooks 目錄下,創建一個名為 post-commit 的腳本:

touch /path/to/myrepo/hooks/post-commit

然後編輯該腳本,添加以下內容:


#!/bin/bash
REPOS="$1"
REV="$2"
SVNLOOK=/usr/bin/svnlook
TARGET_DIR=/path/to/web/directory

$SVNLOOK changed -r $REV $REPOS | grep '^U' | awk '{print $2}' | while read file; do
    cp -r "$REPOS/$file" "$TARGET_DIR/$file"
done

確保腳本具有可執行權限:

chmod +x /path/to/myrepo/hooks/post-commit

六、測試配置

現在,您可以通過 SVN 客戶端提交代碼,並檢查 Web 目錄是否自動更新。這樣,您就成功地在 CentOS 6.8 上搭建了 SVN 並設置了自動同步功能。

總結

本文介紹了如何在 CentOS 6.8 上搭建 SVN 伺服器,並利用鉤子自動將代碼同步到 Web 目錄。這一過程不僅提高了開發效率,還簡化了版本管理。若您需要穩定的 VPS 服務來支持您的開發環境,Server.HK 提供多種選擇,滿足不同需求。