svn利用鉤子post-commit自動更新到線上測試伺服器(測試中未驗證)

来源:http://www.cnblogs.com/bass6/archive/2016/05/05/5460366.html
-Advertisement-
Play Games

創建一個新的版本庫: 再建一個工作副本: 配許可權: 進入該目錄後,checkout出一個副本,用於同步上線上伺服器的路徑: 配WEB: 我這裡是開一個nginx vhost http://darkyin.blog.51cto.com/6260426/1361132 ...


創建一個新的版本庫:

[root@centos03 svn]# pwd
/home/svn
[root@centos03 svn]# svnadmin create webtest
[root@centos03 svn]# tree webtest/
webtest/
├── conf
│   ├── authz
│   ├── passwd
│   └── svnserve.conf
├── db
│   ├── current
│   ├── format
│   ├── fsfs.conf
│   ├── fs-type
│   ├── min-unpacked-rev
│   ├── rep-cache.db
│   ├── revprops
│   │   └── 0
│   │       └── 0
│   ├── revs
│   │   └── 0
│   │       └── 0
│   ├── transactions
│   ├── txn-current
│   ├── txn-current-lock
│   ├── txn-protorevs
│   ├── uuid
│   └── write-lock
├── format
├── hooks
│   ├── post-commit.tmpl
│   ├── post-lock.tmpl
│   ├── post-revprop-change.tmpl
│   ├── post-unlock.tmpl
│   ├── pre-commit.tmpl
│   ├── pre-lock.tmpl
│   ├── pre-revprop-change.tmpl
│   ├── pre-unlock.tmpl
│   └── start-commit.tmpl
├── locks
│   ├── db.lock
│   └── db-logs.lock
└── README.txt

10 directories, 28 files

 再建一個工作副本:

[root@centos03 www]# pwd
/alidata/www
[root@centos03 www]# mkdir webtest
[root@centos03 www]# #授權:否則提交會報許可權錯誤!
[root@centos03 www]# chmod -R 777 webtest/

配許可權:

[root@centos03 conf]# vi svnserve.conf
[general] ### These options control access to the repository for unauthenticated ### and authenticated users. Valid values are "write", "read", ### and "none". The sample settings below are the defaults. anon-access = read auth-access = write password-db = /home/svn/webtest/conf/passwd authz-db = /home/svn/webtest/conf/authz
[root@centos03 conf]# vi passwd
[users]
# harry = harryssecret
# sally = sallyssecret
svnadmin = 123456
test = 123456
[root@centos03 webtest]# vi /home/svn/webtest/conf/authz
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin = svnadmin
user = test
[/]
@admin = rw
[/webtest]
@admin = rw
* =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

 

[root@centos03 webtest]# ps -ef |grep svn
root      2586     1  0 13:33 ?        00:00:00 svnserve -d -r /home/svn/webtest/
root      2590  2475  0 13:33 pts/0    00:00:00 grep svn

進入該目錄後,checkout出一個副本,用於同步上線上伺服器的路徑:

[root@centos03 www]# svn co svn://192.168.1.72/webtest
svn: URL 'svn://192.168.1.72/webtest' doesn't exist

 

[root@centos03 www]# ls /home/svn/
test  webtest #有兩個版本庫啟動的時候應該是:svnserve -d -r /home/svn/

 

[root@centos03 www]# ps -ef|grep svn
root      2650     1  0 14:00 ?        00:00:00 svnserve -d -r /home/svn/
root      2678  2475  0 14:04 pts/0    00:00:00 grep svn

 

[root@centos03 www]# svn co svn://192.168.1.72/webtest
Checked out revision 0.
[root@centos03 www]# ls
phpwind  sx  webtest  xxzz

 配WEB:

我這裡是開一個nginx vhost

[root@centos03 vhosts]# vi webtest.conf
server {
        listen       83;
        server_name  localhost;
        index index.html index.htm index.php;
        root /alidata/www/webtest;
        location ~ .*\.(php|php5)?$
        {
                #fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi.conf;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
                expires 30d;
        }
        location ~ .*\.(js|css)?$
        {
                expires 1h;
        }
       
        include /alidata/server/nginx/conf/rewrite/default.conf;
        access_log  /alidata/log/nginx/access/webtest.log;
}

 

[root@centos03 vhosts]# service nginx reload
Reloading nginx!

 

[root@centos03 hooks]# cp post-commit.tmpl post-commit
[root@centos03 hooks]# which svn
/usr/bin/svn

 

[root@centos03 hooks]# vi post-commit
[root@centos03 hooks]# pwd
/home/svn/webtest/hooks
REPOS="$1"
REV="$2"
SVN=/usr/bin/svn
WEB=/alidata/www/webtest
RSYNC=/usr/bin/rsync
LOG=/tmp/rsync_web.log
WEBIP=192.168.1.73
#這是線上web伺服器IP
export LANG=en_US.UTF-8
$SVN update $WEB --username svnadmin --password 123456
if [ $? == 0 ]
echo "" >>$LOG
echo `date` >> $LOG
echo "#####################" >>$LOG
$RSYNC -vaztpH --timeout=90 --exclude-from=/home/svn/webtest/exclude.list $web root@$WEBIP:/www/>>$LOG
if
#--exclude-from 可不要根據需求不同步的排除

[root@centos03 hooks]# chmod +x post-commit

 http://darkyin.blog.51cto.com/6260426/1361132


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 介紹 在日常的維護過程中創建用戶操作用的相對會多一些,但是在這個過程中涉及到的知識點就不單單就是useradd了,接下來就來詳細瞭解賬號管理的相關信息。 用戶信息 先從用戶信息開始分析,可以通過查詢/etc/password文件,每一行代表一個用戶信息 介紹 在日常的維護過程中創建用戶操作用的相對會 ...
  • 這節描述了IA-32架構的任務管理功能,只有當處理器運行在保護模式的時候,這個功能才是有效的,這節的側重點在32位任務和32位TSS結構上,關於16位的任務和16位TSS結構,請看7.6節,關於64位模式中,具體任務管理的信息,請看7.7節 7.1 任務管理概述 任務是處理器可以調度,執行和暫停的一 ...
  • 新建alias條目 臨時 alias monitor='gnome-system-monitor' 永久 可以在家目錄下,新建 .bash_aliases 文件,然後在其中加上你想要的替換的比如 alias monitor='gnome-system-monitor' 註意後邊alias後邊的mon ...
  • Linux下網路故障診斷 Linux下網路故障診斷 Linux下網路故障診斷 導讀 由於實現網路伺服器的層次結構比較多,因此當網路出現故障時,解決起來比較複雜。下麵由我來為大家詳細介紹Linux系統中可能出現的一些網路問題,如網卡硬體問題、網路配置問題、驅動程式問題,以及網路層、傳輸層、應用層問題等 ...
  • 根目錄/: 最重要的一個目錄,與開機/修複/還原有關。該目錄所在的分區越小越好,安裝的程式也最好不要放在該分區內。 根目錄下必須存在的子目錄: 存放系統設置的文件,可執行文件最好不在放置在此目錄中。該目錄有幾個重要的子目錄: passwd: 存放系統帳號信息; shadow: 存放系統登錄密碼; g ...
  • 2個數組 : 一個是Unicode 編碼,一個是GBK編碼; 用c2b軟體轉成.bin 二進位文件放到SD卡裡; SD卡放入字型檔 .FON STM32 代碼: 代碼中SD卡字型檔和二進位路徑 //http://www.cnblogs.com/xiaobo-Linux/ QQ463431476 趙存檔 ...
  • 伺服器端配置 - 更新源並下載 客戶端配置 - 更新源並下載 伺服器端新建共用目錄和客戶端新建掛載點 伺服器端配置NFS exports 客戶端掛載共用目錄 參考URL: https://www.digitalocean.com/community/tutorials/how-to-set-up-a ...
  • 在Linux系統下安裝好Qt5,打開Qt Creator新建一個最簡單的工程,編譯卻出現"cannot find -lGL"錯誤。 在網上搜索解決方法,找到的方案基本上是安裝libgl1-mesa-dev,如通過apt-get install libgl1-mesa-dev安裝,但是在我自己的系統上 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...