本發(fā)明涉及通信技術(shù),尤指一種代碼變化量的統(tǒng)計方法及其裝置。
背景技術(shù):
在軟件研發(fā)工作中,經(jīng)常需要獲取項目版本某個階段內(nèi)每個開發(fā)人員每天的代碼變化量情況、變更類別、變更代碼所屬的模塊、有效代碼量、代碼注釋率以及反應(yīng)代碼質(zhì)量的一些度量指標值,以便查看員工每天的代碼變更趨勢,統(tǒng)計故障泄漏率,評估員工的工作量、效率及代碼質(zhì)量,進而對開發(fā)工作的改進及時提供依據(jù)和參考價值。
通常,軟件研發(fā)中的代碼可以通過并發(fā)版本控制系統(tǒng)(Concurrent Versions System,簡稱CVS)等軟件版本管理工具進行管理。具體的,通過CVS可以統(tǒng)計出整個版本中代碼行數(shù)或有效代碼量或是修改的代碼行數(shù)。
在實施上述現(xiàn)有技術(shù)時,本領(lǐng)域技術(shù)人員發(fā)現(xiàn),通常使用的軟件版本管理工具無法統(tǒng)計每人每個時間段的代碼變化情況。
技術(shù)實現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明提供了一種代碼變化量的統(tǒng)計方法及其裝置,用以解決無法統(tǒng)計每人每個時間段的代碼變化情況的問題。
為了達到本發(fā)明目的,本發(fā)明提供了一種代碼變化量的統(tǒng)計方法,包括:
根據(jù)提交日期和責任人,確定比較處理腳本,所述比較處理腳本用于比較在所述提交日期的范圍內(nèi),每個責任人每天的代碼變化量,所述代碼變化量包括代碼增加、代碼刪除和代碼修改對應(yīng)的代碼行數(shù);
根據(jù)所述比較處理腳本,獲得所述責任人每天的代碼變化量。
進一步的,還包括:
根據(jù)提交日期和責任人,確定前后代碼對比腳本,所述前后代碼對比腳本用以對所述提交日期和所述責任人對應(yīng)的當前代碼,以及前次代碼分別進行規(guī)范性檢測,所述前次代碼包括在獲取所述當前代碼之前的最近一版本的代碼;
根據(jù)所述前后代碼對比腳本,獲得當前代碼檢測結(jié)果和前次代碼檢測結(jié)果,所述當前代碼檢測結(jié)果包括對所述當前代碼進行規(guī)范性檢測的結(jié)果,所述前次代碼檢測結(jié)果包括對所述前次代碼進行規(guī)范性檢測的結(jié)果。
進一步的,還包括:
根據(jù)日期,確定規(guī)范檢測腳本,所述規(guī)范檢測腳本用于對所述日期對應(yīng)的變化的代碼進行檢查;
根據(jù)所述規(guī)范檢測腳本,獲得變化代碼檢測結(jié)果,所述變化代碼檢測結(jié)果包括對所述日期對應(yīng)的變化的代碼進行規(guī)范性檢查的結(jié)果。
進一步的,還包括:
根據(jù)提交日期、責任人以及修改前后的版本號,確定變更代碼比較腳本,所述變更代碼比較腳本用于對修改前后版本號對應(yīng)的代碼進行比較,獲得修改前后版本號對應(yīng)代碼的修改結(jié)果,所述修改前后版本號包括修改代碼或增加代碼的當前版本號,以及獲取所述當前版本號之前的最近一版本的版本號;
根據(jù)所述變更代碼比較腳本,確定修改前后版本號對應(yīng)代碼的修改結(jié)果。
進一步的,所述根據(jù)提交日期和責任人,確定比較處理腳本之前,還包括:
確定版本號區(qū)間和要統(tǒng)計的代碼所在的版本庫路徑;或者
確定時間段和要統(tǒng)計的代碼所在的版本庫路徑。
本發(fā)明還提供了一種代碼變化量的統(tǒng)計裝置,包括:
確定模塊,用于根據(jù)提交日期和責任人,確定比較處理腳本,所述比較處理腳本用于比較在所述提交日期的范圍內(nèi),每個責任人每天的代碼變化量,所述代碼變化量包括代碼增加、代碼刪除和代碼修改對應(yīng)的代碼行數(shù);
處理模塊,用于根據(jù)所述比較處理腳本,獲得所述責任人每天的代碼變化量。
進一步的,所述確定模塊,還用于根據(jù)提交日期和責任人,確定前后代碼對比腳本,所述前后代碼對比腳本用以對所述提交日期和所述責任人對應(yīng)的當前代碼,以及前次代碼分別進行規(guī)范性檢測,所述前次代碼包括在獲取所述當前代碼之前的最近一版本的代碼;
所述處理模塊,還用于根據(jù)所述前后代碼對比腳本,獲得當前代碼檢測結(jié)果和前次代碼檢測結(jié)果,所述當前代碼檢測結(jié)果包括對所述當前代碼進行規(guī)范性檢測的結(jié)果,所述前次代碼檢測結(jié)果包括對所述前次代碼進行規(guī)范性檢測的結(jié)果。
進一步的,所述確定模塊,還用于根據(jù)日期,確定規(guī)范檢測腳本,所述規(guī)范檢測腳本用于對所述日期對應(yīng)的變更的代碼進行檢查;
所述處理模塊,還用于根據(jù)所述規(guī)范檢測腳本,獲得變更代碼檢測結(jié)果,所述變更代碼檢測結(jié)果包括對所述日期對應(yīng)的變更的代碼進行規(guī)范性檢查的結(jié)果。
進一步的,所述確定模塊,還用于根據(jù)提交日期、責任人以及修改前后的版本號,確定變更代碼比較腳本,所述變更代碼比較腳本用于對修改前后版本號對應(yīng)的代碼進行比較,獲得修改前后版本號對應(yīng)代碼的修改結(jié)果,所述修改前后版本號包括修改代碼或增加代碼的當前版本號,以及獲取所述當前版本號之前的最近一版本的版本號;
所述處理模塊,還用于根據(jù)所述變更代碼比較腳本,確定修改前后版本號對應(yīng)代碼的修改結(jié)果。
進一步的,所述確定模塊,還用于確定版本號區(qū)間和要統(tǒng)計的代碼所在 的版本庫路徑;或者
確定時間段和要統(tǒng)計的代碼所在的版本庫路徑。
與現(xiàn)有技術(shù)相比,本發(fā)明包括:根據(jù)提交日期和責任人,確定比較處理腳本,所述比較處理腳本用于比較在所述提交日期的范圍內(nèi),每個責任人每天的代碼變化量,所述代碼變化量包括代碼增加、代碼刪除和代碼修改總和的代碼行數(shù);根據(jù)所述比較處理腳本,獲得所述責任人每天的代碼變化量。實現(xiàn)了對每個責任人每天的代碼變化量的統(tǒng)計。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
附圖說明
附圖用來提供對本發(fā)明技術(shù)方案的進一步理解,并且構(gòu)成說明書的一部分,與本申請的實施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對本發(fā)明技術(shù)方案的限制。
圖1為本發(fā)明代碼變化量的統(tǒng)計方法一實施例的流程示意圖;
圖2為本發(fā)明代碼變化量的統(tǒng)計裝置一實施例的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本發(fā)明實施例提供的代碼變化量的統(tǒng)計方法具體可以應(yīng)用于對修改或變 更的代碼進行統(tǒng)計時。本實施例提供的代碼變化量的統(tǒng)計方法具體可以通過代碼變化量的統(tǒng)計裝置來執(zhí)行,該代碼變化量的統(tǒng)計裝置可以集成在計算機內(nèi)部,或者單獨設(shè)置,其中,該代碼變化量的統(tǒng)計裝置可以采用軟件和/或硬件的方式來實現(xiàn)。以下對本實施例提供的代碼變化量的統(tǒng)計方法及其裝置進行詳細地說明。
圖1為本發(fā)明代碼變化量的統(tǒng)計方法一實施例的流程示意圖,如圖1所示,本實施例的方法的執(zhí)行主體可以是代碼變化量的統(tǒng)計裝置。該方法包括如下步驟:
步驟101、根據(jù)提交日期和責任人,確定比較處理腳本。
在本實施例中,所述比較處理腳本用于比較在所述提交日期的范圍內(nèi),每個責任人每天的代碼變化量,所述代碼變化量包括代碼增加、代碼刪除和代碼修改對應(yīng)的代碼行數(shù)。
舉例來講,根據(jù)提交日期和責任人,確定比較處理腳本compare.bat,用于比較在所述提交日期的范圍內(nèi),每個責任人每天的代碼變化量,所述代碼變化量包括代碼增加、代碼刪除和代碼修改對應(yīng)的代碼行數(shù);
compare.bat是如下比較命令的集合(以責任人為單位):
需要說明是-e表示有效代碼行的比較,具體的參考textdiff工具使用說明。
步驟102、根據(jù)所述比較處理腳本,獲得所述責任人每天的代碼變化量。
在本實施例中,根據(jù)提交日期和責任人,確定比較處理腳本,所述比較處理腳本用于比較在所述提交日期的范圍內(nèi),每個責任人每天的代碼變化 量,所述代碼變化量包括代碼增加、代碼刪除和代碼修改總和的代碼行數(shù);根據(jù)所述比較處理腳本,獲得所述責任人每天的代碼變化量。實現(xiàn)了對每個責任人每天的代碼變化量的統(tǒng)計。
在上述實施例的基礎(chǔ)上,該方法,還可以包括:
根據(jù)提交日期和責任人,確定前后代碼對比腳本,所述前后代碼對比腳本用以對所述提交日期和所述責任人對應(yīng)的當前代碼,以及前次代碼分別進行規(guī)范性檢測,所述前次代碼包括在獲取所述當前代碼之前的最近一版本的代碼。
根據(jù)所述前后代碼對比腳本,獲得當前代碼檢測結(jié)果和前次代碼檢測結(jié)果,所述當前代碼檢測結(jié)果包括對所述當前代碼進行規(guī)范性檢測的結(jié)果,所述前次代碼檢測結(jié)果包括對所述前次代碼進行規(guī)范性檢測的結(jié)果。
舉例來講,根據(jù)提交日期和責任人,確定前后代碼對比腳本checkStyle.bat,用于對當前代碼revision和前次代碼lastrevision對應(yīng)的源代碼進行規(guī)范檢查,并將結(jié)果輸出到前次代碼檢測結(jié)果old_checkstyle_report.xml和當前代碼檢測結(jié)果new_checkstyle_report.xm中;
(1)checkStyle.bat是如下命令的集合:
在上述實施例的基礎(chǔ)上,該方法,還包括:
根據(jù)日期,確定規(guī)范檢測腳本,所述規(guī)范檢測腳本用于對所述日期對應(yīng)的變化的代碼進行檢查;
根據(jù)所述規(guī)范檢測腳本,獲得變化代碼檢測結(jié)果,所述變化代碼檢測結(jié)果包括對每天變更的代碼進行規(guī)范性檢查的結(jié)果。其中,變化代碼包括代碼增加、代碼刪除和代碼修改中的至少一種。
舉例來講,根據(jù)日期確定規(guī)范檢測腳本copyCodeToSM.bat,用于將每天變化的文件拷貝到sourceMonitor檢測工具目錄下,對代碼進行sourceMonitor檢查。
進一步的,在上述實施例的基礎(chǔ)上,該方法,還可以包括:
根據(jù)提交日期、責任人以及修改前后的版本號,確定變更代碼比較腳本,所述變更代碼比較腳本用于對修改前后版本號對應(yīng)的代碼進行比較,獲得修改前后版本號對應(yīng)代碼的修改結(jié)果,所述修改前后版本號包括修改代碼或增加代碼的當前版本號,以及獲取所述當前版本號之前的最近一版本的版本號;
根據(jù)所述變更代碼比較腳本,確定修改前后版本號對應(yīng)代碼的修改結(jié)果。
根據(jù)文件的變化類型(M、A、D),對于變化類型是M和A的,根據(jù)提交日期、責任人以及修改前后的版本號按照一定的目錄組織規(guī)則生成導出文件的命令并輸入到批處理腳本svnExport.bat中;其中M表示修改、A表示添加、D表示刪除;
(2)svnExport.bat中的內(nèi)容是如下導出命令的集合(以單個文件為單位):
進一步的,在上述實施例的基礎(chǔ)上,依次執(zhí)行svnExport.bat、compare.bat、checkStyle.bat、copyCodeToSM.bat,執(zhí)行完畢,每天每人變更前后的文件會導出到本地目錄,代碼變動量比較結(jié)果txt文件和代碼規(guī)范檢查xml文件會輸出到批處理命令中設(shè)置的路徑下,具體的說明如下:
(1)revision對應(yīng)的文件導出到“文件導出目錄\項目版本名稱\code\提交日期\new\責任人\文件路徑\文件名稱”目錄下;
lastrevision對應(yīng)的文件導出到“文件導出目錄\項目版本名稱\code\提交日期\old\責任人\文件路徑\文件名稱”目錄下;
(2)txt文件會輸出到“文件導出目錄\項目版本名稱\code\提交日期\author\責任人\out.txt”
具體的,out.txt文件的內(nèi)容格式如下:
(3)revision和lastrevision對應(yīng)文件的代碼規(guī)范檢查結(jié)果分別輸出到下面目錄的文件中:
“文件導出目錄\項目版本名稱\code\提交日期\author\責任人\old_checkstyle_report.xml”
“文件導出目錄\項目版本名稱\code\提交日期\author\責任人\new_checkstyle_report.xml”
(4)SourceMonitor檢查結(jié)果csv文件輸出到目錄“SourceMonitor工具目錄\項目版本名稱\report”
步驟S06:代碼變更情況統(tǒng)計模塊解析“文件導出目錄\項目版本名稱\code\提交日期\author\責任人”目錄下的out.txt和*.xml文件,統(tǒng)計每人每天的代碼變更情況,并將結(jié)果輸出到EXCEL報表中,具體的統(tǒng)計信息包括:責任人、變更日期、SVN版本號、代碼所屬項目分支名稱、文件路徑、文件名稱、變更類別、增加的代碼行數(shù)、刪除的代碼行數(shù)、修改的代碼行數(shù)、代碼總行數(shù)、注釋率、修改前代碼規(guī)范檢查指標值、修改后代碼規(guī)范檢查指標值、修改前后規(guī)范檢查差值、SVN提交日志、故障單號、所屬模塊。最后,會對統(tǒng)計區(qū)間內(nèi)每個開發(fā)人員的總的代碼變更情況進行匯總,并將結(jié)果輸出到EXCEL報表的“匯總”頁中。較佳的,根據(jù)變更類別和所屬模塊可以統(tǒng)計出每個模塊的故障單數(shù)及代碼行數(shù),進而得出故障泄漏率。
根據(jù)所述的實施方案,用戶在執(zhí)行一次統(tǒng)計任務(wù)時,可以將需要的參數(shù)信息配置到批處理命令中,然后一鍵執(zhí)行即可,中途不需人工輸入任何參數(shù)。具體的配置信息說明如下:
在上述實施例的基礎(chǔ)上,在所述根據(jù)提交日期和責任人,確定比較處理腳本之前,還包括:
確定版本號區(qū)間和要統(tǒng)計的代碼所在的版本庫路徑;或者
確定時間段和要統(tǒng)計的代碼所在的版本庫路徑。
舉例來講,首先要在項目版本中規(guī)范化管理提交日志模板和代碼注釋模板,下面列出本發(fā)明實施例中用到的模板,需要說明的是,模板不限于此,可以根據(jù)實際需求進行調(diào)整,具體的,本實施例中用到的模板信息如下:
SVN提交日志模板如下:
代碼注釋模板如下:
圖2為本發(fā)明代碼變化量的統(tǒng)計裝置一實施例的結(jié)構(gòu)示意圖,如圖2所示,該代碼變化量的統(tǒng)計裝置,包括:確定模塊21和處理模塊22。其中,
確定模塊21,用于根據(jù)提交日期和責任人,確定比較處理腳本,所述比較處理腳本用于比較在所述提交日期的范圍內(nèi),每個責任人每天的代碼變化量,所述代碼變化量包括代碼增加、代碼刪除和代碼修改對應(yīng)的代碼行數(shù);
處理模塊22,用于根據(jù)所述比較處理腳本,獲得所述責任人每天的代碼變化量。
本實施例中,根據(jù)提交日期和責任人,確定比較處理腳本,所述比較處理腳本用于比較在所述提交日期的范圍內(nèi),每個責任人每天的代碼變化量,所述代碼變化量包括代碼增加、代碼刪除和代碼修改總和的代碼行數(shù);根據(jù)所述比較處理腳本,獲得所述責任人每天的代碼變化量。實現(xiàn)了對每個責任人每天的代碼變化量的統(tǒng)計。
在上述實施例的基礎(chǔ)上,所述確定模塊21,還用于根據(jù)提交日期和責任人,確定前后代碼對比腳本,所述前后代碼對比腳本用以對所述提交日期和所述責任人對應(yīng)的當前代碼,以及前次代碼分別進行規(guī)范性檢測,所述前次代碼包括在獲取所述當前代碼之前的最近一版本的代碼;
所述處理模塊22,還用于根據(jù)所述前后代碼對比腳本,獲得當前代碼檢測結(jié)果和前次代碼檢測結(jié)果,所述當前代碼檢測結(jié)果包括對所述當前代碼進行規(guī)范性檢測的結(jié)果,所述前次代碼檢測結(jié)果包括對所述前次代碼進行規(guī)范性檢測的結(jié)果。
可選的,在上述實施例的基礎(chǔ)上,所述確定模塊21,還用于根據(jù)日期,確定規(guī)范檢測腳本,所述規(guī)范檢測腳本用于對所述日期對應(yīng)的變更的代碼進行檢查;
所述處理模塊22,還用于根據(jù)所述規(guī)范檢測腳本,獲得變更代碼檢測結(jié)果,所述變更代碼檢測結(jié)果包括對所述日期對應(yīng)的變更的代碼進行規(guī)范性檢查的結(jié)果。
可選的,在上述實施例的基礎(chǔ)上,所述確定模塊21,還用于根據(jù)提交日期、責任人以及修改前后的版本號,確定變更代碼比較腳本,所述變更代碼比較腳本用于對修改前后版本號對應(yīng)的代碼進行比較,獲得修改前后版本號對應(yīng)代碼的修改結(jié)果,所述修改前后版本號包括修改代碼或增加代碼的當前版本號,以及獲取所述當前版本號之前的最近一版本的版本號;
所述處理模塊22,還用于根據(jù)所述變更代碼比較腳本,確定修改前后版本號對應(yīng)代碼的修改結(jié)果。
進一步的,在上述實施例的基礎(chǔ)上,所述確定模塊21,還用于確定版本號區(qū)間和要統(tǒng)計的代碼所在的版本庫路徑;或者,確定時間段和要統(tǒng)計的代碼所在的版本庫路徑。
雖然本發(fā)明所揭露的實施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實施的形式及細節(jié)上進行任何的修改與變化,但本發(fā)明的專利保護范圍,仍須以所附的權(quán)利 要求書所界定的范圍為準。