成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在VSS中監視你的軟件配置和管理數據庫

運維 數據庫運維
軟件配置管理,也叫SCM,是一個軟件組織質量改進碰到的第一個瓶頸,本文將為大家提供一些建議來突破這一瓶頸。

軟件配置管理,也叫SCM,是一個軟件組織質量改進碰到的第一個瓶頸,因為SCM的核心是進度控制和風險管理,而這兩項是所有迫切需要進行質量改進的軟件組織的最大弱點。

SCM的殘酷現實

但是在改進過程中,我們會碰到太多的阻力,其中一個重要的阻力是配置管理流程的執行問題。開發人員認為配置管理約束了他們的自由的創作,配置管理員也不知道如何進行配置管理活動。這些情況在中小型軟件企業中普遍存在。

管理層不能狠下決心結合配置管理來做好進度和風險的控制,配置管理的流程和制度名存實亡,配置管理員在這樣的環境下,可能很難想象自己除了寫寫無聊的配置管理計劃和報告之外,究竟要做些什么工作。

另一方面,由于配置管理流程沒有真正建立起來,測試人員也在發牢騷,因為他們永遠也不知道開發人員在什么時候又改動了一行代碼,結果導致他們測試的遺漏,或者是開發人員一時興起,把大部分控件的名稱改成更好聽的名字,結果導致測試人員的自動化腳本需要重新錄制。

VSS是大部分中小軟件企業都在使用的配置管理工具。把它稱為配置管理工具實在有點勉強,因為缺乏構建管理、流程管理等功能,充其量也不過是個源代碼控制工具。但是就是這樣一個小工具,卻是我們大部分人用在配置管理活動中的核心工具。

在這樣“殘酷”的環境中,真的就只能互相埋怨,被迫接受現實了嗎?不,基于VSS,我們還是可以主動的獲取很多信息來真正幫助我們。

VSS的編程接口

VSS提供了2種類型的編程接口,命令行,自動化接口。VSS的SS.exe通過命令行調用,支持大部分的VSS界面操作的功能。例如通過Checkin 和Checkout命令來簽入、簽出文件。

VSS還提供了一個自動化編程接口IVSS,IVSS是一個基于COM的自動化接口集合,通過Microsoft.VisualStudio.SourceSafe.Interop命名空間暴露給用戶使用。它提供了操作VSS數據庫的接口。例如,通過IVSSDatabase接口訪問和登錄VSS數據庫。

每日配置管理簡報

既然,VSS提供了方便的編程接口,那么我們能否利用它來幫助我們進行配置管理活動呢?答案是肯定的。其中一個簡單的活動是配置管理記錄的自動生成。

我們可以在每天晚上下班后運行一個小程序,自動登錄到VSS,獲取當天開發人員對VSS做的任何改動。并記錄到文件中,作為配置管理記錄,并且發送到項目組各成員的郵箱中,這樣測試人員也可以在每天早上上班的時候知道昨天開發人員進行了哪些更改,是否需要取版本進行回歸測試,回歸測試的策略也可以方便地根據配置管理記錄來進行設計。

Surveillant

我把這樣一個小程序叫做Surveillant,也就是監視者的意思,當然還有監督者、密探的意思。我想配置管理員和測試人員會喜歡這樣一個名字的。但是我并沒有其它的企圖,只是通過這樣一個小程序幫助有需要的人方便地、自動化地獲取需要的信息。

用C#來寫這樣一個小程序,我們可以有兩個選擇,一種是調用命令行的方式,一種是使用VSS的自動化編程接口。

命令行的方式比較簡單,使用SS的History命令即可,例如:

History $/vss_test -R -Yusername,password –Vd2007-10-18;23:59:59~2007-10-18;00:00:00 -O@C:\report.txt;
在C#的代碼里只要把其中的項目路徑、用戶帳號、日期等替換掉,再通過啟動一個命令行進程來執行它即可。使用這種命令行方式的前提是把SSDIR環境變量設置好了,也就是說把要連接的VSS數據庫的srcsafe.ini文件所在的路徑設置成環境變量了。

如果是用VSS的自動化編程接口,首先要加入對Microsoft.VisualStudio.SourceSafe.Interop.dll的引用。然后建立一個vss數據庫實例的引用,用Open方法登錄:

                VSSDatabase vssDatabase = new VSSDatabase();
                vssDatabase.Open(SSDIR, userName, passWord);

然后通過get_VSSItem方法指定需要獲取變更歷史的源代碼項目路徑,返回一個IVSSItem對象:

IVSSItem vssFolder = vssDatabase.get_VSSItem(projectPath, false);

#p#

利用這個對象來遞歸地訪問項目中的所有源代碼文件。在這里我用一個叫getVssHistory的遞歸方法來實現訪問所有項目源代碼文件在指定的日期范圍內的版本歷史:

public void getVssHistory(ref StringBuilder result,IVSSItem vssFolder,DateTime from,DateTime to)
        {

            IVSSItems items = vssFolder.get_Items(true);

            foreach (IVSSItem item in items)

            {

                //判斷是文件還是目錄

                if (item.Type != 0)

                {

                    IVSSVersions versions = item.get_Versions(1);

                    foreach (IVSSVersion version in versions)

                    {

//如果是在指定時間范圍內的版本,則納入返回結果

                       if ((version.Date > from) && (version.Date < to))

                        {

                            result.AppendLine(item.Spec + " ( version "

+ version.VersionNumber.ToString() + " ):"

+ version.Date + " , " + version.Action

+ " by " + version.Username + "\n");

                        }

                    }

                }

                else

                {

                   //如果是目錄,還需要遞歸下去

                    getVssHistory(ref result,item, from, to);

                }

            }

        }

 

可以充分利用IVSS的對象模型,獲取更多你需要的信息。例如所有當前處于簽出狀態的文件,某個VSS用戶的權限,等等。

把小程序納入每日構建的執行框架中,或者就簡單地利用Windows的任務計劃每天晚上定時執行,獲取當天的VSS配置庫的更改信息,或者其它需要的信息,在第二天早上把這份小小的報告放在每個人的郵件中,每個人都能從這些報告中獲得需要的信息。

程序的使用

完整的程序源代碼可以到我的搏客下載 http://www.51testing.com/?141783/action_viewspace_itemid_64835.html

其實這樣一個程序對于開發人員也是非常有用的,我們經常發現自己的bug修改好了,但是過幾天又被reopen了,原因是改好的程序又被某個魯莽的家伙覆蓋了。如果每天都能知道其他人在昨天做了什么更改,尤其是清楚是否對自己的“敏感地帶”動了手腳的話,很多源代碼控制的問題也就能及早發現并修正了。

但是更重要的是要把這些記錄作為溝通的信息。作為配置管理員,即使是在不規范的配置管理流程中,也需要做好配置庫的更改記錄和審計工作,當發現某些文件的更改非常頻繁,或多人頻繁交替更改同一個文件時應該主動問個究竟;當測試人員發現昨天存在源代碼的更改時,應該主動聯系更改的開發人員,具體了解更改的內容,更改涉及的范圍是什么,是否需要及時進行測試,對自動化測試腳本是否有影響,等等。

流程的改進是一個循序漸進的過程,如果改進比較緩慢,或者停滯不前,不要等待某個人來搭救我們,自己先想想,有什么東西可以做的,不要依賴流程,更不要互相埋怨,畢竟流程是為了幫助我們建立正確的做事方式,減低出錯的機會,而要想做對事情,前提是建立起正確的思維。

【編輯推薦】

  1. 數據庫跨平臺遷移方法淺析
  2. C#連接數據庫和更新數據庫
  3. 細說如何遷移Analysis Services數據庫
責任編輯:book05 來源: it168
相關推薦

2013-10-08 09:54:41

數據庫安全數據庫管理

2023-11-02 10:32:27

GoGORM

2024-10-12 12:58:45

2009-03-25 18:11:57

監視鏡像數據庫

2023-10-29 17:15:57

2009-06-04 20:48:15

Eclipse中安裝VEclipse中配置V

2023-03-20 16:00:56

數據庫管理系統

2009-04-22 09:42:07

SQL Server監視鏡像

2018-02-11 09:00:00

軟件部署監控

2023-12-29 22:39:25

Golang應用程序數據庫

2009-07-06 15:57:56

獲取數據庫連接JSP

2022-02-28 07:37:02

Java配置參數

2022-09-08 10:07:24

云數據庫數據庫

2018-01-02 08:47:59

SQLlite數據庫附加分離

2011-05-12 11:01:07

MySQL數據庫緩存

2011-11-08 21:54:05

Windows 監控

2024-11-25 06:45:00

數據庫OLAPOLTP

2023-08-01 14:35:00

關系數據庫排列

2021-12-31 11:35:40

藍牙漏洞玩具Fisher-Pric

2022-06-08 17:24:13

數據庫管理工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美一区二区三区国产精品 | 亚洲协和影视 | 精品国产欧美在线 | 亚洲欧美日韩精品久久亚洲区 | 国产美女精品视频 | 国产精品免费高清 | 成人欧美一区二区三区视频xxx | 第一色在线| 欧美伊人 | 色妹子综合网 | www312aⅴ欧美在线看 | 中文字幕免费中文 | 国产成人精品一区二 | 91精品国产一区 | 日韩欧美中文字幕在线观看 | 久久综合久久久 | 日韩中文字幕网 | 久久精品国产一区 | 日韩在线中文字幕 | 国产精品久久在线 | 成人网在线观看 | 日韩在线91 | 日韩欧美一区二区三区免费看 | 久久精品网 | 日本黄色影片在线观看 | 免费一区二区三区 | 久久精品一 | 羞羞视频在线免费 | 亚洲导航深夜福利涩涩屋 | 亚洲国产精品一区二区三区 | 亚洲视频一区二区三区 | 欧美另类视频在线 | 国产91精品在线 | 91免费在线看 | 91亚洲免费 | 欧美精品福利 | 午夜视频一区二区三区 | 欧美精品在线免费观看 | 午夜影院在线观看免费 | 香蕉久久av | 一级片视频免费 |