自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SVN自動同步如何實現(xiàn)?

開發(fā) 項目管理
在學(xué)習(xí)SVN的過程中,你可能會遇到SVN自動同步問題,在這里和大家簡單分享一下,希望通過本文的學(xué)習(xí)大家對SVN自動同步有一定的認識和理解。

本節(jié)簡單向大家描述一下SVN自動同步方面的內(nèi)容,因為它是我們在學(xué)習(xí)SVN過程中難免會遇到的問題,所以和大家一起來學(xué)習(xí)一下,希望通過本文大家能夠?qū)VN自動同步問題有新的看法。
SVN自動同步需求分析:
1、用戶提交文件時將其同步到Web服務(wù)器對應(yīng)目錄
2、用戶提交文件時將其同步到另一個SVN版本庫
3、日志記錄整個操作過程

SVN自動同步程序執(zhí)行流程:
1、用戶提交文件到SVN服務(wù)器,提交操作成功后觸發(fā)post-commit腳本
2、在post-commit版本文件中使用phpphp_script.php執(zhí)行PHP腳本
3、在PHP腳本中通過exec系統(tǒng)調(diào)用更新服務(wù)器上的版本庫工作副本
4、根據(jù)更新操作結(jié)果日志,對另一個SVN版本庫進行對應(yīng)的操作處理

日志文件說明:
svn-post-commit-log.txt意外操作錯誤日志
svn_log_master_2010-03-01.txt2010-3-1主SVN操作日志
svn_log_slave_2010-03-01.txt2010-3-1副SVN操作日志

程序源碼說明:
post-commit:svnhookscript
#!/bin/sh
#設(shè)置語言為UTF8字符集exportLANG=en_US.UTF-8
#執(zhí)行SVN同步操作的腳本,并把意外錯誤信息保存到日志文件
php/var/www/svn/svn004/hooks/post-commit-sync.php>>/var/www/log/svn-post-commit-log.txt2>&1
post-commit-sync.php:PHP自動同步腳本
#!/usr/bin/php
<?php
/**
*SVN自動同步
*自動根據(jù)用戶的提交操作,同步文件到Web服務(wù)器及另一個SVN版本庫
*/
$svnhost='http://192.168.1.40/svn004';//子SVN版本庫地址
$svnout='/var/www/html/svnout';//子版本庫檢出目錄
$svnlog='/var/www/log';//操作日志文件目錄
$svnmast='/var/www/html/svnmast';//主版本庫檢出目錄
/**
*保存操作日志到文件中
*@paramstring$logname日志名稱
*@paramstring$content日志內(nèi)容
*@returnbooleam操作狀態(tài)
*/
functionsave_log_to_file($type,$content){
global$svnlog;
if(empty($type)||empty($content)){
returnfalse;
}
//生成日志文件名稱
$str_log_file=$svnlog.'/svn_log_'.$type.'_'.date('Y-m-d',time()).'.txt';
//組合日志內(nèi)容
$content=is_array($content)?implode("\n",$content):(string)$content;
$content='svnbotoperatordate:'.date('Y-m-dH:i:s',time())."\n".$content."\n\n";
returnfile_put_contents($str_log_file,$content,FILE_APPEND);
}下面看一下SVN自動同步過程中組合日志內(nèi)容時可能出現(xiàn)的一些問題。
//如果SVN輸出文件夾不存在就創(chuàng)建一個,登陸失敗就退出
if(!is_dir($svnout)){
if(!@mkdir($svnout)){
save_log_to_file('slave','error:createslavesvnoutputdirectoryfaile!');
exit();}
}
//如果文件夾中沒有文件則執(zhí)行一次checkout操作
$filelist=scandir($svnout);
if(count($filelist)<=2){
exec('svncheckout'.$svnhost.''.$svnout);
}
//如果 checkout失敗則退出程序
if(!is_dir($svnout.'/.svn')){
save_log_to_file('slave','error:slavesvnisnotavaildateworkcopy!');
exit();
}
//用于保存系統(tǒng)調(diào)用的操作結(jié)果。本節(jié)關(guān)于SVN自動同步問題介紹完畢,請關(guān)注本節(jié)其他相關(guān)報道。

 【編輯推薦】

  1. SVN同步測試服務(wù)器創(chuàng)建方法大揭秘
  2. 兩種方法實現(xiàn)SVN搭建測試服務(wù)器
  3. SVN同步相關(guān)問題專家講解
  4. 深入剖析 如何遠程修改SVN密碼
  5. 術(shù)語匯編 SVN代碼庫簡介
責任編輯:佚名
相關(guān)推薦

2010-05-26 14:53:28

SVN版本庫自動備份

2010-05-26 15:07:36

SVN版本庫自動備份

2010-06-02 19:54:48

SVN自動更新

2010-05-21 13:23:23

SVN作為window

2014-10-23 09:31:07

post-commitSVN

2010-05-31 13:54:52

2010-05-31 14:19:47

2010-06-02 17:16:16

自動運行SVN

2023-11-16 18:03:05

Kafka分布式消息

2010-06-01 14:47:18

SVN倉庫目錄

2010-03-17 15:08:28

Java多線性同步

2018-05-14 13:51:39

RDS Binlog架構(gòu)Kafka集群

2010-05-28 14:57:42

SVN-Importe

2010-05-21 14:53:25

Centos下SVN的

2010-05-26 09:21:12

啟動SVN

2010-05-26 08:37:45

啟動SVN

2011-05-16 11:29:00

MySQL自動備份

2010-06-02 18:29:36

搭建SVN

2020-11-18 19:11:26

iOSFlutterNative

2010-05-20 17:06:48

SVN CO
點贊
收藏

51CTO技術(shù)棧公眾號