linuxSVN版本庫及同步檔案到WEB目錄

2021-06-02 15:08:00 字數 1839 閱讀 8272

一 安裝與配置svn

1.安裝subversion

centos: yum install subversion

ubuntu: apt-get install subversion

2.建立版本庫,本例中我們的版本庫建立在/var/svn,假設該版本庫目錄為:foo

cd /var

mkdir svn

svnadmin create foo

3.配置版本庫

剛才建立的版本庫,需要配置認證方式,使用者名稱和密碼,許可權配置這三個檔案,分別對應/var/svn/foo/conf下的

svnserve.conf,passwd和authz這三個檔案。

svnserve.conf(去掉注釋)

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz.conf

realm = 填寫登入時提示的認證網域名稱稱

passwd檔案新增相應使用者名稱和密碼:

user1 = password1

user2 = password2

如果要使用通用的使用者名稱密碼和許可權認證,指定password-db和authz-db路徑到相應passwd和authz.conf檔案位置即可

authz檔案新增相應使用者名稱到組並分配庫許可權:

[groups]

foo_user = user1,user2 (多個使用者以逗號分隔)

@foo_user = rw

其中*=意味著匿名使用者沒有許可權,引用組名時要加上@符號

4.啟動和使用

配置成功以後,啟動svn版本庫服務

svnserve -d -r /var/svn

獲取版本庫:

伺服器上可以直接使用 svn co file:///var/svn/foo

二、同步到web目錄

1.建立web目錄(已有目錄則略過)

cd /var

mkdir www

chmod 777 www

2.檢出副本到/var/www

svn co file:///var/svn/foo

3.增加hooks(鉤子)檔案

在/var/svn/foo/hooks/目錄中

# start-commit 提交前觸發事務

# pre-commit 提交完成前觸發事務

# post-commit 提交完成時觸發事務

# pre-revprop-change 版本屬性修改前觸發事務

# post-revprop-change 版本屬性修改後觸發事務

我們這裡只需要修改post-commit檔案:

cp post-commit.tmpl post-commit

編輯該檔案

#!/bin/sh

# 配置庫位址

repos="$1"

rev="$2"

# web目錄

basepath=/var/www

# web資料夾名與svn庫名相同

name=$(basename $repos)

webpath="$basepath/$name"

# 避免中文資訊亂碼

export lang="zh_cn.utf-8"

# 可以配合svnlook命令更新指定目錄

svn update $webpath --username=user1 --password=password1 --no-auth-cache

儲存後需要修改post-commit檔案許可權為755,否則svn無法呼叫執行

chmod 755 post-commit

Linux svn 回滾版本庫

首先保證我們拿到的是最新 執行 svn up index 然後找出要撤銷的確切版本 svn log limit 10 index tpl css global.css根據log懷疑是16976版本改壞的,比較一下 svn diff r 16975 16976 index tpl css global...

Linux svn 回滾版本庫

linux svn up index 然後找出要撤銷的確切版本 linux svn log limit 10 index tpl css global.css 根據log懷疑是16976版本改壞的,比較一下 linux svn diff r 16975 16976 index tpl css glo...

Linux SVN直接刪除版本庫檔案

material目錄已經存在於版本庫中 由於特殊情況,我們要保留本地該目錄,但是要刪除版本庫中的該目錄 在windows客戶端環境中,刪除版本庫檔案一般都是把svn檔案checkout到本地,然後本地刪除後commit提交,則可以刪除版本庫相應檔案或目錄 在linux環境也可以按照這個方法刪除 由於...