當前位置:首頁 » 編程軟體 » svn鉤子腳本

svn鉤子腳本

發布時間: 2023-04-26 21:32:47

㈠ 如何把測試伺服器上的代碼通過svn同步到正式伺服器上

您好,最簡單的辦法,將SVN伺服器和測試伺服器架設在同一台主機上,然後編輯SVN的post-commit鉤子腳本,這個鉤子是在每次成功commit後由SVN伺服器自動調用執行的,存放在SVN伺服器上該版本庫的hooks文件夾下,編輯這個腳本,調用svn的checkout或者update,在SVN伺服器主機上得到一個最新版的SVN客戶端文件夾,接著通過這個腳本調用編譯、部署指令,部署到測試伺服器指定的文件夾,這就ok了。這樣每次commit後就會自動發布一個新的測試版到測試伺服器上。
當然了,也可以用操作系統的定時任務來做這個,來定時發布新測試版。

㈡ 在想實現在兩台svn伺服器之間實現數據同步,發現 執行 svnsync init 時不能正常進行。

在同步的目標伺服器端該版本庫的hooks文件夾內增加一個鉤子腳本,pre-revprop-change.bat,裡面寫上一行命納芹氏困令:
exit 0
然後就洞核畢應該一起OK了。

㈢ svn伺服器備份svnsync命令怎麼用

有較多參數命令,可在命令行輸入 svnsync help來查看;網上相關實例蠻多,可網路下。
使用svnsync備份很簡單,只有四個步驟,在這里和大家簡單介紹一下,希望通過本節的學習大家能夠掌握使用svnsync命令對SVN庫進行備份的方法。
下面是具體的備份步驟:
一、在備份機上創建一個空庫:svnadmincreateSMP
二、更改該庫的鉤子腳本pre-revprop-change(因為svnsync要改這個庫的屬性,也就是要將源庫的屬性備份到這個庫,所以要啟用這個腳本):
cdSMP/hooks;
cppre-revprop-change.tmplpre-revprop-change;
chmod755pre-revprop-change;
vipre-revprop-change;
將該腳本後面的三句注釋掉,或者乾脆將它弄成一個空文件。
三、初始化,此時還沒有備份任何數據:
svnsyncinitfile:///home/backup/svn/svnsync/SMP/http://svntest.subversion.com/repos/SMP
語法是:svnsyncinit{你剛創建的庫url}{源庫url}
注意本地url是三個斜杠的:///
四、開始備份SVN庫:
svnsyncsyncfile:///home/backup/svn/svnsync/SMP
這是就一個個版本進行備份了。我們來看一下SVN庫備份過程中可能出現的錯誤。
附錄:
可能的報錯一:

,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' ,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02' svnsync:Couldn'

這個時候可能屬性被鎖了,刪掉屬性:svnpropdelsvn:sync-lock--revprop-r0file:///home/backup/svn/svnsync/SMP
刪除成功後,再試一遍基本就可以了。如果反復操作都是同樣錯誤的話,有可能是你的svn安裝的有問題,重新安裝一遍就好了,俺就是這樣。
可能報錯二、
svnsync:REPORTrequestfailedon'http://svn1.subversion.com/repos/Relevance'
svnsync:Therequestedreportisunknown.這是因為你源庫的版本太低了,svnsync所需要的函數Report是svn1.4後加入的。沒辦法,對你的SVN庫進行升級後才能備份。

㈣ 什麼是svn的鉤子腳本

1. SVN(Subversion)簡介
SVN是類似於VSS 和 CVS 的版本管理軟體,是CVS的作者另起爐灶開發的,繼承了CVS的優點,避免了CVS的一些缺點.
客戶端軟體TortoiseSVN與資源管理器結合,使用非常方便.
2.安裝文件及說明文檔所在目錄:
客戶端安裝文件:
http://203.187.176.183/TortoiseSVN-1.1.7-UNICODE_svn-1.1.4.msi
中文語言包:
http://203.187.176.183/LanguagePack_1.1.7_zh_CN.exe
3.簡要說明
由於客戶端軟體TortoiseSVN與資源管理器結合使用,所以安裝後要reboot
中文語言包使用方法: 桌面或資源管理器的任何地方右鍵,
4 基本操作
Svn伺服器地址203.187.176.183
每人自己一個私有目錄,URL分別是
svn//203.187.176.183/yhb
svn//203.187.176.183/zwb
svn//203.187.176.183/ldh
svn//203.187.176.183/pb
svn//203.187.176.183/pub
你的賬號密碼通過手機簡訊發給你.
輸入你自己的URL ,比如:svn//203.187.176.183/zwb
常用操作:將一個已有的工程加入SVN
例如:有目錄 e:\project1 ,導入 SVN
導入到你的URL下面的某個子目錄下:
比如:svn//203.187.176.183/zwb/project1
然後用"SVN 取出"功能從剛導入的或別人導入的工程獲得一個working .
Important
You can only check out into an empty directory. If you want to check out a previously imported sourcetree, Subversion will throw an error messge. You will have to check out into a different directory or delete the existing sourcetree first
要想check out (取出)到剛才進行導入的目錄,必須先刪除原目錄中的文件,或新建個目錄
取出 操作成功後,目錄會有個綠色的勾, 並增加了一個目錄 .svn
-------修改過的文件會有紅色標識,新增加的文件沒有任何標識------
―――使用SVN提交 將改動上傳到SVN伺服器 ――――――――――――――
改動過的文件和新增加文件會在列表中,要都選中.

㈤ svn提交失敗怎麼解決

從唯神報錯信息來看,渣山胡是被SVN伺服器端的鉤子阻止了這次commit,你需要找SVN管理員,問問他在伺服器端對commit做了哪些限制

SVN鉤子是SVN伺服器自動調用的一些腳本,一般通過這些鉤子對commit、lock、屬性設置做出一些閑置,如攔或附帶一些其他操作

㈥ svn配置鉤子更新網站目錄 每次提交 程序會卡在正在發送文件 有人說是 腳本有問題 手動執行腳本沒有問題

把報錯信息發上來看看。
如果報錯說被某個鉤子阻止,就檢查那個鉤子是否有問題。如果那個鉤子手動執行沒問題,最常見的原因的就是path路徑問題,一般把鉤子里的命令行都改成絕對路徑就OK了。

㈦ 如何通過svn鉤子腳本記錄提交人,提交庫,提交文件,提交時間

其實原理很簡單,就是利用svn的鉤子:post-commit,在提交過後想做什麼在這個腳本里就寫什麼。
假設我們的SVN目錄是:/home/svn
我們需要同步的web目錄是:/home/www/web(前提,這個web目錄也是從svn裡面檢出的)

㈧ windows中svn怎麼配置鉤子代碼

如果伺服器端是windows環境的話,那麼鉤子實際就是批處理文件(擴展名bat)

這些鉤子都存放在伺服器端的hooks文件夾內,比較常用的鉤子包括pre-commit.tmpl、post-commit.tmpl等,pre-commit.tmpl是當伺服器端接收到commit請求的時候自動調用這個鉤子,post-commit.tmpl是當完成commit操作的時候伺服器端自動調用這個鉤子,在windows環境下鉤子程序的擴展前好名要改成鍵悔冊bat,而不能用tmpl

至於鉤子的內容,就看自己的發揮了,你需要熟悉DOS批處理文件的編寫技巧,常見的應用比如:當commit完成後,自動調用鉤子程序,通過svn update命令,將最新版本發布到伺服器上的測試環境中
在網上查了,發現都不對,有哪位大哥大姐知道,告一下。也不提示錯誤,就是稿宏同步不了

㈨ 如何用svn hook來實現強制代碼評審

要用SVN伺服器廳桐端的鉤子來實現code review,這個比較難操作,鉤子會寫的非常復雜,要通過鉤子識別出此次commit上傳了哪些文件,然後才能調用代碼靜態檢查工具。
建議改成在客戶端強制code review,比如TortoiseSVN可以在凱拿客戶端扮孫坦定製一個類似鉤子的腳本,通過腳本在commit之前對代碼進行檢查,或者要求在commit時必須在log中粘貼代碼檢查通過時自動生成的文本來證明。

㈩ SVN的POST-COMMIT鉤子怎麼用

利用SVN的POST-COMMIT鉤子自動部署代碼

我們在開發的過程將代碼提交到SVN後使用SVN的hook,通過post-commit腳本,在目
標文件夾根下執行svn update操作,將更新內容同步到測試環境,這樣開發調試非常方便。

post-commit內容:
--------------------------------------------
#!/bin/sh
#修改為服務編碼
export LANG=zh_CN.gb2312

#Set variable
REPOS="$1"
REV="$2"

SVN=/usr/bin/svn
WEB=/data/home/htdocs
LOG=/data/home/auto_svn.log

#update the code from the SVN
$SVN update $WEB --username username --password password --non-interactive

#......................
if [ $? == 0 ]
then

echo "$REPOS" "$REV" >> $LOG
echo `date` >> $LOG
echo "##############################" >> $LOG
fi
-----------------------------------------------
需要注意:
1、需要用export指定編碼。
2、需要指定svn全路徑。
3、代碼CO出來之後,可以進行post-commit腳本的測試了。因為svn的hooks執行的時候不帶有任何的環境變數,所以我們不能通過簡單的 ./post-commit 進行代碼的測試。必須要使用sudo su 等命令切換到svn或者apache伺服器運行用戶下,用下面的方法進行測試
Python代碼
env – ./post-commit
==================================================================================
#!/bin/bash
export LANG=en_US.UTF-8
src=/data/webroot/ask.j1.com ##local checkout directory###
deswebroot=/data/wwwroot/ask
remoteip=210.14.70.4
/usr/local/svn/bin/svn update $src --username webapp --password | grep -v -i update|awk '{print $2}'| while read chfile
do
if [ -e $chfile ];then
if [ -f $chfile ];then
#chown ftp.ftp $chfile
dfile=$(echo $chfile |sed "s:$src\/::") ###only file name###
rsync -avz -e ssh --exclude-from=/data/svndata/ask.j1.com/exclude-file $src/$dfile root@$remoteip:$deswebroot/$dfile
else
#chown ftp.ftp $chfile
dfile=$(echo $chfile |sed "s:$src\/::")
rsync -auvz -e ssh --exclude-from=/data/svndata/ask.j1.com/exclude-file $src/$dfile/ root@$remoteip:$deswebroot/$dfile/
fi
fi
done

熱點內容
香港雲伺服器建站有用嗎 發布:2025-07-13 10:46:26 瀏覽:435
安卓如何進入賞金賽 發布:2025-07-13 10:44:48 瀏覽:812
obd源碼android 發布:2025-07-13 10:43:59 瀏覽:795
編譯器錯誤cs0016 發布:2025-07-13 10:42:36 瀏覽:771
c語言二進制代碼 發布:2025-07-13 10:27:28 瀏覽:19
kc杯腳本 發布:2025-07-13 10:27:22 瀏覽:614
android選中變色 發布:2025-07-13 10:23:09 瀏覽:953
進程隱藏源碼 發布:2025-07-13 10:11:29 瀏覽:744
安卓如何實名認證和平精英 發布:2025-07-13 10:09:27 瀏覽:236
arduino編程入門 發布:2025-07-13 09:59:22 瀏覽:87