天天看點

linux svn檢視安裝目錄,Linux安裝SVN實作自動同步到Web目錄

一:安裝SVN

1,檢查伺服器是否安裝SVN

svn --version

已安裝:

svn, version 1.6.11 (r934486)

compiled Aug 17 2015, 08:37:43

Copyright (C) 2000-2009 CollabNet.

Subversion is open source software, see http://subversion.tigris.org/

This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.

- handles 'http' scheme

- handles 'https' scheme

* ra_svn : Module for accessing a repository using the svn network protocol.

- with Cyrus SASL authentication

- handles 'svn' scheme

* ra_local : Module for accessing a repository on local disk.

- handles 'file' scheme

未安裝:

-bash: svn: command not found

2,未安裝使用yum安裝

yum install subversion

3,建立倉庫目錄(倉庫目錄可更改到其他目錄,看你意願)

mkdir –p /svn

4,建立項目版本庫

svnadmin create /svn/davesvn --davesvn為版本庫名稱

5,建立成功後進入版本庫目錄

cd /svn/davesvn

ls 檢視目錄下生成的檔案

conf 存放版本庫所用配置檔案的目錄

db 版本資料存儲目錄

format 存儲一個整數的檔案,此整數代表庫層次結構版本

hooks 存放版本庫勾子目錄

locks 存儲庫鎖目錄,用來跟蹤庫的通路者

README.txt

6,接下來開始配置SVN

cd conf

ls

authz | 權限配置檔案

passwd | 使用者名密碼檔案

svnserve.conf | svn服務配置檔案

//配置密碼 XXX=XXX

vim password

[users]

zhan = 123456

//配置權限 XXX=XXX

vim authz

[/]

zhan = rw

//配置svnserve.conf 取消以下注釋 注意不要有空格

vim svnserve.conf

anon-access = read #匿名使用者可讀

auth-access = write #授權使用者可寫

password-db = passwd #使用哪個檔案作為賬号檔案

authz-db = authz #使用哪個檔案作為權限檔案

realm = /svn/davesvn #認證空間名,版本庫所在目錄

7,啟動SVN服務

svnserve -d -r /svn/davesvn

-d 表示背景運作

-r 指定目錄是 /svn/davesvn

若提示:svnserve: Can't bind server socket: Address already in use

表示服務已經啟動,先停止服務

ps -ef | grep svn

kill -9 [程序号] 殺掉程序

二,實作自動部署項目

1,使用post-commit實作自動部署

在/svn/davesvn/hooks下建立post-commit檔案,檔案設定可執行權限

cp post-commit.tmpl post-commit

chmod 755 post-commit

2,打開post-commit檔案,清空post-commit内容,加入以下内容

!/bin/sh

export LANG=zh_CN.UTF-8

svn co svn://[你的ip位址]/davesvn [WEB實際目錄]

LOG_PATH=/tmp/svn_test.log

WEB=[WEB實際目錄]

REPOS="$1"

REV="$2"

svn update --username [剛設定的SVN使用者名] --password [剛設定的SVN密碼] $WEB --no-auth-cache >> $LOG_PATH

3,最後回到shell

svn co svn://你的ip/davesvn [WEB目錄]

按照提示輸入賬号密碼實作自動同步

三,使用

SVN檢出:檢視是否可以正常檢出

svn://伺服器IP:3690/davesvn

正常檢出後送出檢視WEB目錄是否實作同步内容

排坑:

svn錯誤:post-commit hook failed (exit code 1) with output.

1,檢查post-commit裡面設定的字元編碼是否正确

原來是#export LANG=zh_CN.GBK

修改為export LANG=en_US.UTF-8即可(svn伺服器預設是utf8)

2,檢查post-commit裡面設定的賬号密碼和SVN配置裡面的賬号密碼是否正确

3,255錯誤:post-commit有沒有給執行權限

4,檢視伺服器3690端口是否開啟

4,最後無論在做什麼,最主要的還是細緻,看報錯資訊,不要慌張