av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

軟件開發(fā)項目管理實踐之駐場研發(fā)

  公司最近準備分出一套人馬去客戶那里做駐場研發(fā),這就涉及到代碼庫的統(tǒng)一管理。鑒于VSS在互聯(lián)網(wǎng)上表現(xiàn)不好,而TFS配置又過于復雜,我們選擇了SVN??紤]到代碼的安全性及性能,我們決定在本地布署自己的SVN服務器,然后每個人安裝TortoiseSVN作為客戶端,并安裝AnkhSVN插件配合Visual Studio使用,安裝CruiseControl.NET進行自動化的每日構(gòu)建,安裝Redmine進行項目管理,安裝BugFree進行bug管理。

南票網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司

  1.VisualSVN,TortoiseSVN,AnkhSVN

  我安裝的版本是:VisualSVN2.1.9,TortoiseSVN-1.6.16.21511,AnkhSvn-2.1.10129。他們的安裝過程都是傻瓜式的,無需多表,主要是安裝好后需要進行幾個位置的配置。

  a).采用Http還是Https

  這個選擇的優(yōu)缺點就不多表,其實是看具體的需要。

  b).安全證書問題

  安裝完成后,如果采用Https方式,默認訪問時會出現(xiàn)安全證書問題。這其實是因為默認使用的是“自簽名證書”。安全證書的原理,簡單來講就是采用兩個大素數(shù)A和B,用A加密的只能用B解密,用B加密的只能用A解密,此時稱A為密鑰,B為公鑰或者B為密鑰,A為公鑰。這是一種典型的不對稱加密。如果這對鑰匙的提供者是公認的認證機構(gòu)(如Verisign),那么各種主流瀏覽器就會認為它是安全的證書,反之就是非安全證書。顯然,所謂“自簽名證書”,就是指這個鑰匙的提供者就是自己,在瀏覽器看來這當然就是典型的非安全證書了,會在最開始的頁面顯示一個警告。要想去除這個警告,有兩種方法,***種當然就是把你的相關(guān)信息發(fā)給那些認證機構(gòu),讓他們幫你生成安全證書。不過這個方案是需要花點銀子滴。第二種方法就是手工把當前的“自簽名證書”加入到受信任列表里去。這種方法簡單易行,具體的方法與說明請自行g(shù)oogle或者參見本文結(jié)尾的參考文章。

  c).使用“鎖定-編輯-解鎖”模型

  這個其實也是仁者見仁,智者見智的問題。只是對于我們而言,這個模型更加適合我們。但是SVN默認是“拷貝-修改-合并”模型,那如何進行變更呢?這就用到了SVN的自定義屬性了。在SVN里是通過內(nèi)置的屬性“svn:needs-lock”實現(xiàn)“鎖定-編輯-解鎖”模型的。在這里只提一下具體操作,找到config文件,我的路徑是:C:UsersljzforeverAppDataRoamingSubversionconfig。然后把enable-auto-props = yes前面的#號與空格刪掉,然后在[auto-props]下面加一行* = svn:needs-lock=x。更加具體的操作與說明請自行g(shù)oogle或者參見本文結(jié)尾的參考文章。這樣,所有的文件在上傳到SVN上后就自動進入“鎖定-編輯-解鎖”模型了。

  d).關(guān)于"steal lock"

  這個選項的初衷是為了增強靈活性,當一個文件被其它人鎖定后,仍然可以用“偷”的方式將鎖強行拿過來。不過這也是引起代碼沖突的潛在原因之一,我們決定將其屏避掉。這里用到的技術(shù)就是hook script。hook script其實是一些腳本文件,在windows環(huán)境下就是一些bat腳本。每當svn做一些特定操作時,比如“鎖定”,“提交”時,就會到指定目錄下查找相關(guān)的hook script并執(zhí)行它,達到對相應命令的預處理。我們這里是需要在鎖定前檢查用戶在申請鎖定文件時是否勾選了"steal lock",如果勾選了,則中斷操作,提示用戶這個選項已被系統(tǒng)禁止。放置這個hook script的目錄是跟代碼庫路徑是相關(guān)的,我的目錄是:E:RepositoriesHWCHhooks。安裝后默認里面已經(jīng)有若干個模板,以tmpl為擴展名,比如pre-lock.tmpl就是鎖定前做的預操作,post-commit.tmpl就是提交后做的預操作。我們在里面新建一個文件:pre-lock.bat,然后在里面輸入以下內(nèi)容:

 
 
 
  1. @echo off  
  2.  
  3. REM [1] REPOS-PATH   (the path to this repository)  
  4. REM [2] PATH         (the path in the repository about to be locked)  
  5. REM [3] USER         (the user creating the lock)  
  6. REM [4] COMMENT      (the comment of the lock)  
  7. REM [5] STEAL-LOCK   (1 if the user is trying to steal the lock, else 0)  
  8.  
  9. setlocal  
  10. ::svn對代碼資源庫路徑與文件路徑里的右小括號敏感,需要對其轉(zhuǎn)義  
  11. ::代碼資源庫路徑  
  12. set repos=%1   
  13. set "repos=%repos:)=^)%"  
  14. ::當前文件路徑  
  15. set repPath=%2  
  16. set "repPath=%repPath:)=^)%"  
  17. set userName=%3  
  18. set isSteal=%5  
  19.  
  20. rem NO_STEALING  
  21. ::如果沒有被鎖定,則直接跳走結(jié)束處理  
  22. if /I '1'=='%isSteal%' goto NO_STEALING  
  23. REM echo aaa >>d:\log.txt  
  24. REM echo repos = %repos% >>d:\log.txt  
  25. REM echo repPath = %repPath% >>d:\log.txt  
  26. REM echo userName = %userName% >>d:\log.txt  
  27. rem if the path has been locked, find the Owner.  
  28. ::這里是處理重點  
  29. ::通過svnlook lock %repos% %repPath%,命令獲取鎖信息,例如:  
  30. ::  UUID Token: opaquelocktoken:1707b1a0-8dd1-a94e-87d2-6569a115cd5c  
  31. ::  Owner: ljz  
  32. ::  Created: 2011-08-08 21:05:31 +0800 (周一, 08 八月 2011)  
  33. ::  Expires:  
  34. ::  Comment (1 line):  
  35. ::通過findstr /r /n ".",將所有行的前面加上行號,前返回所有行,例如:  
  36. ::  1:UUID Token: opaquelocktoken:1707b1a0-8dd1-a94e-87d2-6569a115cd5c  
  37. ::  2:Owner: ljz  
  38. ::  3:Created: 2011-08-08 21:05:31 +0800 (周一, 08 八月 2011)  
  39. ::  4:Expires:  
  40. ::  5:Comment (1 line):  
  41. ::通過tokens=1,2,3 delims=: ,以:號與空格作為分隔符,將上述每一行分隔,并將前三段分別裝入變量%%i,%%j,%%k  
  42. ::通過if %%i == 2 set LockedName=%%k,把第二行分隔后的第三段裝入變量LockedName,在這里,就是ljz  
  43. for /f "tokens=1,2,3 delims=: " %%i in ('svnlook lock %repos% %repPath% ^|findstr /r /n "."') do (  
  44.         if %%i == 2 set LockedName=%%k  
  45.         )  
  46.  
  47. rem If we get no result from svnlook, there's no lock, allow the lock to happen.  
  48. ::如果沒有獲取到鎖定信息,則直接跳走結(jié)束處理  
  49. if not defined LockedName goto OK_EXIT  
  50.  
  51. rem If the person locking matches the lock's owner, allow the lock to happen.  
  52. rem But this one won't effect, the SVN don't care if the person matchs, they just don't allow relock.  
  53. REM echo userName = %userName% >>d:\log.txt  
  54. REM echo LockedName = %LockedName% >>d:\log.txt  
  55. ::如果鎖定人與當前用戶同名,則直接跳走結(jié)束處理  
  56. if /I '%LockedName%'=='%userName%' goto OK_EXIT  
  57.  
  58. rem Otherwise, we've got an owner mismatch, so return failure:  
  59. :WRONG_PERSON  
  60. echo the path has been locked by %LockedName%, Pls contact %LockedName% to unlock it.>&2   
  61. goto ERROR_EXIT   
  62. :NO_STEALING  
  63. echo Stealing lock is not allowed at this server.>&2  
  64. :ERROR_EXIT  
  65. endlocal  
  66. exit 1  
  67. :OK_EXIT  
  68. endlocal  
  69. exit 0 

  2.CruiseControl.NET

  我下載的版本是CruiseControl.NET-1.6.7981.1,安裝完成后,主要通過配置安裝目錄下的ccnet.config文件來達到自動化構(gòu)建。

  a).配置文件

  我的配置文件如下:

 
 
 
  1.  
  2.      
  3.      
  4.      
  5.          
  6.          
  7.         E:\project\SVNTest\artifactDir 
  8.          
  9.         E:\project\SVNTest\workingDir 
  10.          
  11.         http://localhost/ccnet/server/local/ViewServerReport.aspx 
  12.          
  13.          
  14.  
  15.          
  16.          
  17.          
  18.          
  19.          
  20.              
  21.                  
  22.                      
  23.                          
  24.                              
  25.                              
  26.                                 Saturday 
  27.                                 Sunday 
  28.                              
  29.                          
  30.                      
  31.                      
  32.                          
  33.                              
  34.                              
  35.                                 Saturday 
  36.                                 Sunday 
  37.                              
  38.                          
  39.                      
  40.                  
  41.                 
  42.          
  43.           
  44.          
  45.          
  46.              
  47.             http://localhost:88/svn/HWCH/SVNTest/ 
  48.              
  49.             E:\project\SVNTest 
  50.              
  51.             C:\Program Files\VisualSVN Server\bin\svn.exe 
  52.              
  53.             ljz 
  54.             ljz 
  55.          
  56.           
  57.          
  58.              
  59.              
  60.                 E:\project\SVNTest\SVNTest.sln 
  61.                 Debug 
  62.              
  63.          
  64.           
  65.          
  66.              
  67.              
  68.              
  69.              
  70.          
  71.      
  72.  

  基本上照葫蘆畫瓢,就能把配置搞定。

  b).服務器時間

  我在測試cc.net從svn獲取代碼的時候,出現(xiàn)了一個這樣子的錯:failed:svn Check for modification。找了很久都沒有找到原因,后來無意中改系統(tǒng)時間的時候才發(fā)現(xiàn),原來我在測試triggers節(jié)點時,把系統(tǒng)時間改到昨天了,所以一定要記得,下一次獲取代碼的時間一定要晚于上一次獲取代碼的時間,不然cc.net就再也無法從svn獲取***的代碼了。

  3.redmine

  這是個著名的開源項目管理軟件,這個就不多講了,具體的請參看我之前的博文:項目管理軟件之易度1.5,禪道2.0,redmine1.2(附redmine1.2的安裝)

  4.bugfree

  這也是個著名的開源bug管理軟件,下載***的Wamp環(huán)境,我的是WampServer2.1e,解壓安裝,然后下載***的bugfree,我的是bugfree2.1.3,解壓后放在Wamp安裝目錄的www目錄下,然后在瀏覽器地址欄里輸入指定網(wǎng)址,按提示生成數(shù)據(jù)庫,稍等幾秒鐘后就可以開始使用了。更詳細的操作與說明請自行g(shù)oogle或者參見本文結(jié)尾的參考文章。

  ***,下載個花生殼, 將域名動態(tài)綁定下,全世界就都可以使用公司本部的代碼了~~~

  參考的文章:

  網(wǎng)站的安全證書有問題

  將自簽名證書用于Web服務安全性

  命令行 Subversion 入門

  TortoiseSVN有沒有對資源的獨占簽出功能

  AnkhSVN的自動加鎖

  用Hook Script阻止空日志信息提交到Subversion

  分享Visual SVN Hook Script——檢查提交時必須填寫大于N個字符的日志信息

  Hook Script to disable Break Lock in Tortoise SVN

  SVN hooks(鉤子)-禁止break lock及steal lock。(Windows dos-batch版)

  bat set命令詳解

  BAT 批處理腳本 教程

  DOS命令大全:Findstr命令詳解

  安裝 VisualSVN-Server 和 TortoiseSVN 和 AnkhSVN 體會


新聞名稱:軟件開發(fā)項目管理實踐之駐場研發(fā)
網(wǎng)站URL:http://uogjgqi.cn/article/dhjssgi.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流