svn利用鉤子腳本功能實(shí)現(xiàn)代碼同步到web目錄

      網(wǎng)友投稿 848 2022-05-29

      一、hook簡單介紹

      為了方便管理員控制提交的過程 ,Subversion提供了hook機(jī)制。當(dāng)特定的 事件發(fā)生時(shí),相應(yīng)的 hook會(huì)被調(diào)用,hook其實(shí)就相當(dāng)于特定事件的處理函數(shù)。每個(gè)hook會(huì)得到與它所處理的事件相關(guān)的參數(shù),根據(jù) hook的返回值,Subversion會(huì)決定是否繼續(xù)當(dāng)前的提交過程

      要實(shí)際安裝一個(gè)可用的鉤子,你需要在 repos/hooks目錄下安裝一些與鉤子同名(如 start-commit或者post-commit)的可執(zhí)行程序或腳本。

      二、本地機(jī)器SVN自動(dòng)更新

      1. export方式(備份)

      在使用svn客戶端時(shí),有可能需要對(duì)某一個(gè)版本進(jìn)行本地備份,比如制作成壓縮包進(jìn)行發(fā)布,這時(shí)候需要從svn文件夾中提取出內(nèi)容,去除.svn等隱藏的svn配置文件。最笨的方法拷貝一份出來,然后顯示隱藏文件,把所有 .svn文件夾都刪掉。在svn菜單中,可以找到export命令,這個(gè)命令可以將當(dāng)前svn目錄中的內(nèi)容干凈地導(dǎo)出到指定的目錄

      例如你版本庫的svn訪問地址是http://10.30.11.12:8080/svn/project1,你想把這個(gè)版本庫下的/trunk/web文件夾發(fā)布到tomcat上,發(fā)布到tomcat的文件夾地址是d:/tomcat/opt/web,svn的管理員用戶名是abc,密碼是12345,那么這個(gè)鉤子程序應(yīng)該就是:

      svn export http://10.30.11.12:8080/svn/project1/trunk/web ?d:/tomcat/opt/web --force --username abc --password 12345 --no-auth-cache

      注:

      --force 是說強(qiáng)制覆蓋d:/tomcat/opt/web這個(gè)文件夾,避免這個(gè)文件夾不為空時(shí)報(bào)錯(cuò)

      --username abc --password 12345 是自動(dòng)將用戶名和密碼作為參數(shù)傳送進(jìn)去

      --no-auth-cache 是說不緩存用戶名和密碼,這是出于安全考慮

      2.update方式

      修改hooks/post-commit

      export LANG=en_US.UTF-8

      SVN=/usr/bin/svn

      STATIC_DIR=/web/root/wwwdeng ?#注意權(quán)限問題

      $SVN update ?$STATIC_DIR --username deng --password 123456 --no-auth-cache

      #必須加上--no-auth-cache不然會(huì)報(bào)錯(cuò)!!

      默認(rèn)使用的shell類型是sh,最好改成bash,sh是bash的子集,centos中sh其實(shí)就是軟鏈接到bash

      3.update和export比較

      update會(huì)生成一個(gè)隱藏.svn文件夾,這個(gè)文件夾是我們不需要的,當(dāng)然了,如果整個(gè)發(fā)布的內(nèi)容很多的話,建議還是用update,而不用export,因?yàn)閡pdate只更新有變化的部分,而export將重新導(dǎo)出所有內(nèi)容,網(wǎng)絡(luò)消耗比update大。

      三、svn實(shí)現(xiàn)遠(yuǎn)程機(jī)器自動(dòng)更新

      首先實(shí)現(xiàn)A機(jī)器通過ssh無密碼登陸B(tài)機(jī)器, 修改A機(jī)器的post-commit文件

      /usr/bin/ssh -l root ?192.168.127.183 "/bin/bash /home/www/svnup.sh"

      然后在B機(jī)器的/home/www/目錄創(chuàng)建svnup.sh可執(zhí)行文件

      /usr/bin/svn update /web/root/code

      版本庫有提交請(qǐng)求的時(shí)候自動(dòng)會(huì)執(zhí)行post-commit腳本,post-commit腳本通過ssh讓遠(yuǎn)程機(jī)器執(zhí)行shell腳本自動(dòng)更新svn。

      附注:

      @echo off并不是DOS程序中的,

      而是DOS批處理中的。

      當(dāng)年的DOS,所有操作都用鍵盤命令來完成,

      svn利用鉤子腳本功能實(shí)現(xiàn)代碼同步到web目錄

      當(dāng)你每次都要輸入相同的命令時(shí),

      可以把這么多命令存為一個(gè)批處理,

      從此以后,只要運(yùn)行這個(gè)批處理,

      就相當(dāng)于打了幾行、幾十行命令。

      DOS在運(yùn)行批處理時(shí),

      會(huì)依次執(zhí)行批處理中的每條命令,

      并且會(huì)在顯示器上顯示,

      如果你不想讓它們顯示,

      可以加一個(gè)“echo off”

      當(dāng)然,“echo off”也是命令,

      它本身也會(huì)顯示,

      如果連這條也不顯示,

      就在前面加個(gè)“@”。

      說了這么多,

      我覺得非常詳細(xì)了,

      可能你還是不懂。

      沒有經(jīng)過DOS時(shí)代的人,

      想法跟我們是有區(qū)別的。

      SVN web前端

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:《云計(jì)算與虛擬化技術(shù)叢書 深入淺出Serverless:技術(shù)原理與應(yīng)用實(shí)踐》—2.3容器
      下一篇:第三章: C語言程序設(shè)計(jì)初步-語句學(xué)習(xí)(上)
      相關(guān)文章
      国产亚洲高清在线精品不卡| 亚洲一区二区久久| 亚洲精品无码久久久久A片苍井空| 亚洲黄网在线观看| 亚洲成AV人片在线观看无| 区久久AAA片69亚洲| 自拍偷自拍亚洲精品第1页| 亚洲精品A在线观看| 精品亚洲成a人在线观看| 亚洲爆乳无码专区www| 亚洲精品理论电影在线观看| 亚洲无码一区二区三区| 亚洲人成色在线观看| 亚洲精品乱码久久久久久V| 亚洲成在人线在线播放无码| 亚洲av永久中文无码精品| 亚洲aⅴ无码专区在线观看| 亚洲AV网一区二区三区| 国产成人亚洲精品91专区高清| 色偷偷噜噜噜亚洲男人| 国产精品亚洲专一区二区三区| 亚洲A∨午夜成人片精品网站| 亚洲国产V高清在线观看| 亚洲一区二区三区国产精品| 中文字幕不卡亚洲 | ass亚洲**毛茸茸pics| 色偷偷女男人的天堂亚洲网 | 亚洲五月综合缴情在线观看| 激情97综合亚洲色婷婷五| 国产精品亚洲片在线观看不卡| 国产亚洲精品观看91在线| 水蜜桃亚洲一二三四在线| 久久亚洲AV成人无码电影| 亚洲欧洲视频在线观看| 国产成+人+综合+亚洲专| 亚洲国产高清国产拍精品| 亚洲Av无码乱码在线观看性色| 久久亚洲高清综合| 亚洲av不卡一区二区三区| 亚洲国产成人精品久久| 亚洲一区二区三区高清在线观看|