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

如何進(jìn)行SVN源碼管理專家支招

開發(fā) 項(xiàng)目管理
在學(xué)習(xí)SVN的過(guò)程中,你知道如何集成SVN源碼管理和Mantis缺陷跟蹤嗎?本文就像大家介紹一下集成的方法,歡迎大家一起來(lái)學(xué)習(xí)有關(guān)SVN源碼管理。

本節(jié)和大家一起學(xué)習(xí)一下如何集成SVN源碼管理和Mantis缺陷跟蹤 ,目前SVN用處越來(lái)越廣,它不僅可以在多個(gè)操作系統(tǒng)中搭建還可以跟多種程序整合,下面就讓我們一起來(lái)看一下集成SVN源碼管理和Mantis缺陷跟蹤的方法吧。
 

集成SVN源碼管理和Mantis缺陷跟蹤
首先在TortoiseSVN里設(shè)置一下項(xiàng)目的屬性,右鍵點(diǎn)擊目錄,屬性,在subversion一欄里,加入這幾個(gè)屬性
bugtraq:label = issue
bugtraq:url = http://%3cmantisserver%3e/mantis/view.php?id=%BUGID%
bugtraq:message = issue %BUGID%
bugtraq:warnifnoissue = true

到對(duì)應(yīng)的SVN版本庫(kù)里,找到hooks目錄,建立一個(gè)post-commit.bat文件,將以下內(nèi)容拷入:

REM Post-commit hook for MantisBT integration
rem REPOS svn版本庫(kù)的路徑
rem REV 版本信息
rem DETAILS_FILE 是版本庫(kù)的目錄,在版本庫(kù)目錄下建立一個(gè)log的目錄,用來(lái)存放日志
rem set PHPRC=D:EasyPHPapache 默認(rèn)會(huì)使用windows 目錄下的 php.ini 修改后,讀取 easyphpapach 目錄下

rem 拷貝了 checkin.php 進(jìn)行修改,重新命名 為 checkin_svn.php 如果有中文傳輸,需要修改 checkin_svn.php
rem 增加抓換函數(shù) $t_comment = mb_convert_encoding($t_comment, "utf-8","GB2312");
rem 修改位置在 “ foreach ( $t_issues as $t_issue_id ) { ”前面
rem mb_convert_encoding 此函數(shù)需要擴(kuò)展文件php_mbstring.dll的支持~~ 
rem $t_comment   = iconv("UTF-8","GB2312//TRANSLIT",$t_comment);  據(jù)說(shuō)這個(gè)編碼轉(zhuǎn)換效率更高

 

  1. SET REPOS=%1  
  2. SET REV=%2  
  3. SET DDETAILS_FILE=D:svnno1logsvnfile_%REV%  
  4. SET LOG_FILE=D:svnno1logsvnfile_%REV%_Log  
  5. set APR_ICONV_PATH=D:EasyPHPSubversioniconv  
  6. set PHPRC=D:EasyPHPapache  
  7. set path=%path%;D:EasyPHPphp5;D:EasyPHPSubversionbin;  
  8.  
  9. echo ****** Source code change ******>>%DETAILS_FILE%  
  10.  
  11. echo SVN 修改人: >>%DETAILS_FILE%  
  12. svnlook author -r %REV% %REPOS%>>%DETAILS_FILE%  
  13.  
  14. echo SVN 修改日期: >>%DETAILS_FILE%  
  15. svnlook date -r %REV% %REPOS%>>%DETAILS_FILE%  
  16.  
  17. echo SVN 版本:  >>%DETAILS_FILE%  
  18. echo %REV%>>%DETAILS_FILE%  
  19.  
  20. echo SVN 提交注釋: >>%DETAILS_FILE%  
  21. svnlook log -r %REV% %REPOS%>>%DETAILS_FILE%  
  22.  
  23. echo SVN 修改明細(xì): >>%DETAILS_FILE%  
  24. svnlook diff -r %REV% %REPOS%>>%DETAILS_FILE%  
  25.  
  26. rem php.exe .checkin_svn.php 信息文件日志文件  
  27. php.exe D:EasyPHPwwwmantiscorecheckin_svn.php <%DETAILS_FILE%>%LOG_FILE%  
  28.  
  29. del %DETAILS_FILE%  
  30. del %LOG_FILE%  
  31.  

 ***,修改mantis安裝目錄下的config_inc.php,加入以下內(nèi)容(mantis系統(tǒng)里要有SVN用戶):

 $g_source_control_notes_view_status = VS_PUBLIC;
 $g_source_control_account = 'SVN';
 $g_source_control_set_status_to = OFF;
 $g_source_control_regexp = "/bissue [#]{0,1}(d+)b/i";

完成這些步驟后,就可以在SVN提交新版本時(shí),同時(shí)發(fā)布內(nèi)容到對(duì)應(yīng)的缺陷跟蹤系統(tǒng)了。

 比如,修改了一個(gè)源文件,svn commit時(shí),在右上的issue欄目里輸入要提交到的具體的 issue/bug  編號(hào),
 然后在下面的message框內(nèi)輸入具體的描述,svn的hook就會(huì)自動(dòng)往mantis里對(duì)應(yīng)的條目里寫入你提交時(shí)輸入的這些內(nèi)容。#p#

完成以上工作后集成SVN源碼管理和Mantis缺陷跟蹤使用過(guò)程中還存在一些問(wèn)題
1、缺陷號(hào)沒(méi)有強(qiáng)制輸入,如果沒(méi)有輸入缺陷號(hào),仍然可以提交
2、輸入了錯(cuò)誤的缺陷號(hào),系統(tǒng)仍然提交,但是缺陷系統(tǒng)中沒(méi)有相關(guān)的內(nèi)容
解決這個(gè)問(wèn)題,需要在提交前,對(duì)缺陷信息進(jìn)行校驗(yàn)。

一、創(chuàng)建 pre-commit.bat 校驗(yàn)缺陷號(hào)

REM pre-commit.bat hook for MantisBT integration
set REPOS=%1
set TXN=%2
SET DETAILS_FILE=D:svnno1logsvnfile
SET LOG_FILE=D:svnno1logsvnfile_Log
set APR_ICONV_PATH=D:EasyPHPSubversioniconv
set PHPRC=D:EasyPHPapache
set path=%path%;D:EasyPHPphp5;D:EasyPHPSubversionbin;

rem 把注釋信息寫入到 DETAILS_FILE
svnlook log "%REPOS%" -t "%TXN%"  >>%DETAILS_FILE%

rem 執(zhí)行checkin_svn_pre_commit.php 進(jìn)行校驗(yàn)缺陷單號(hào) 是否在缺陷系統(tǒng)中存在,如果不存在,返回輸出信息到 log_file中
php.exe D:EasyPHPwwwmantiscorecheckin_svn_pre_commit.php <%DETAILS_FILE%>%LOG_FILE%

rem 校驗(yàn)log_file中是否有內(nèi)容,如果有內(nèi)容,轉(zhuǎn)入到出錯(cuò)提示
FOR /F "tokens=1,2* delims= " %%i in (%LOG_FILE%) do goto err

del %DETAILS_FILE%
del %LOG_FILE%
exit 0

:err
echo 缺陷單不存在,請(qǐng)正確填寫缺陷單號(hào),提交終止! 1>&2
del %DETAILS_FILE%
del %LOG_FILE%
exit 1

二、創(chuàng)建checkin_svn_pre_commit.php 到數(shù)據(jù)庫(kù)中校驗(yàn)缺陷單信息

拷貝 checkin.php 內(nèi)容 新建checkin_svn_pre_commit.php 文件
刪除 # add note to each bug only once 之后的到 exit( 0 ); 內(nèi)容,修改為以下內(nèi)容
# add note to each bug only once
 $t_issues = array_unique( $t_issues );
 $t_fixed_issues = array_unique( $t_fixed_issues );
        $t_issues_svn = array_unique( $t_issues );
 
# 編碼轉(zhuǎn)換. 

  1. $t_comment = mb_convert_encoding($t_comment, "utf-8","GB2312");   
  2.     # 判斷數(shù)據(jù)庫(kù)中的 缺陷單號(hào)是否存在  
  3.   foreach ( $t_issues_svn as $t_issue_id ) {  
  4.         $query = "SELECT *  
  5.     FROM mantis_bug_table  
  6.     WHERE bug_text_id='$t_issue_id'";  
  7.   $result = db_query( $query );  
  8.   $issues_raw_count = db_num_rows( $result );  
  9.      if ($issues_raw_count  == 0){  
  10.    echo "$t_issue_id";  
  11.    } }  
  12.    exit( 0 );  

 

至此大部分的工作都已經(jīng)完成,但是還存在一些問(wèn)題
1 新增等操作的時(shí)候,有時(shí)候提交沒(méi)有出現(xiàn)收入 issue 提示框,但是此時(shí)仍然需要輸入缺陷號(hào)
測(cè)試可以要求,在提交注釋的時(shí)候,按照 issue 1 形式手工寫入缺陷單號(hào),即可提交。本節(jié)關(guān)于集成SVN源碼管理和Mantis缺陷跟蹤相關(guān)內(nèi)容介紹到這里。

【編輯推薦】

  1. SVN管理與應(yīng)用相關(guān)的資料參考手冊(cè)
  2. 技術(shù)分享 如何進(jìn)行SVN代碼管理
  3. 多項(xiàng)目中SVN權(quán)限管理精辟解析
  4. 如何實(shí)現(xiàn)SVN倉(cāng)庫(kù)目錄規(guī)范化管理?
  5. 經(jīng)驗(yàn)總結(jié):TortoiseSVN客戶端使用心得
責(zé)任編輯:佚名 來(lái)源: csdn.net
相關(guān)推薦

2010-05-27 16:18:58

SVN設(shè)置

2010-05-28 12:55:23

2010-06-02 14:16:18

SVN版本控制

2010-05-24 10:12:16

SVN服務(wù)器搭建

2010-05-19 15:00:18

Apache+SVN部

2010-09-27 10:54:53

JVM參數(shù)配置

2009-07-17 09:45:18

如何選擇IT培訓(xùn)IT培訓(xùn)

2010-06-01 14:35:16

SVN倉(cāng)庫(kù)導(dǎo)出

2010-03-12 19:29:15

python svn腳

2010-05-31 19:41:17

SVN客戶端配置

2020-04-30 10:09:23

數(shù)字資產(chǎn)管理DAM數(shù)字資產(chǎn)

2011-06-24 09:27:31

云計(jì)算風(fēng)險(xiǎn)

2010-06-29 16:29:52

SNMP協(xié)議管理

2014-12-25 17:47:32

12306數(shù)據(jù)泄露信息泄露

2010-06-02 18:51:35

搭建SVN服務(wù)器

2010-05-25 18:32:22

apache+svn+

2010-06-03 14:42:47

Hadoop分布式集群

2014-07-15 10:59:58

Spark代碼跟讀

2010-06-18 10:34:05

UML面向?qū)ο?/a>

2011-07-13 13:13:10

域控制器活動(dòng)目錄
點(diǎn)贊
收藏

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