LNMP環境SVN鉤子指令碼的使用

2021-10-21 04:54:12 字數 1511 閱讀 8455

在做版本的時候,需要svn做一些自動化的事情,比如提交前自動更新;提交一些檔案後關聯著提交另一些。所以需要寫一點自動化指令碼。

官方說法:

鉤子是通過版本庫事件觸發,例如新版本的建立或乙個未版本化屬性的修改。一些鉤子(叫做「pre hooks」)在事件發生前執行,可以用來報告發生了什麼以及防止它發生。還有一些鉤子(「post hooks」)在版本庫事件之後發生,只是用來報告。每個鉤子能夠獲得事件的足夠資訊,例如提出的(或完成的)版本庫修改細節,還有觸發事件的使用者名稱

以web目錄:/usr/share/nginx/html 、svn版本庫目錄:/var/svn/project 為例:

在 /var/svn/project/hooks下新建 post-commit 檔案

[root@vm_0_4_centos hooks]# vim post-commit
並加入以下內容

#!/bin/sh

epos="$1"

rev="$2"

export lang=en_us.utf-8

svn=/usr/bin/svn #這裡配置的是svn安裝bin目錄下的svn檔案

web=/usr/share/nginx/html #要更新的目錄

$svn update --username svn庫使用者名稱 --password svn庫密碼 $web

儲存後,給post-commit加執行的許可權

[root@vm_0_4_centos hooks]# chmod a+x post-commit
基本到這就已經ok了

/usr/bin/svn update –usename svn庫使用者名稱 –password svn庫密碼 /usr/share/nginx/html

如果能正常update就已經ok了

我的因為web目錄下之前就已經有檔案了,會和庫中的版本衝突

下面是解決方法

如果是提示檔案衝突:

svn revert –depth=infinity 有衝突的檔名

如果提示目錄有衝突:

svn revert –depth=infinity 目錄名

拓展

svn有9種鉤子,上面只是其中一種

Lnmp環境下搭建SVN

第一步 安裝svn yum install subversion 第二步 在 usr local下建立svn資料夾並賦予777 chmod r 777 usr local svn 第三步 建立版本庫 svnadmin create usr local svn project 其中project等資料...

LNMP環境下搭建SVN服務

最近自己買了個伺服器,試著在上面搭建了lnmp環境,因為以前在本地用mamp pro搭建過lamp環境,所以基本上還算是輕車熟路,第一次搭建lnmp,使用的是一鍵安裝,過程是順利的,後來在使用過程中遇到了配置檔案誤改的問題,又改不回來了,所以又重灌了一次,這次重灌很順利,不過在搭建svn的時候,反反...

mysql 鉤子 svn鉤子的使用案例

svn鉤子的使用案例 我在這一篇博文中提到,svn鉤子指令碼是svn非常實用重要的功能,在工作中,會經常需要用到svn鉤子指令碼以實現除了svn自帶功能之外的附加功能,那麼這一篇博文,我們就舉例演示一下,svn鉤子是用來做什麼的,以及怎麼用。svn鉤子的功能 svn鉤子是乙個指令碼,它的具體寫法和l...