[發明專利]基于差異代碼分析的分支檢測方法、裝置及存儲介質在審
| 申請號: | 201811288652.4 | 申請日: | 2018-10-31 |
| 公開(公告)號: | CN111124872A | 公開(公告)日: | 2020-05-08 |
| 發明(設計)人: | 沐陽;毛劍;林淼 | 申請(專利權)人: | 上海嗶哩嗶哩科技有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京英特普羅知識產權代理有限公司 11015 | 代理人: | 程超 |
| 地址: | 200000 上海市*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 差異 代碼 分析 分支 檢測 方法 裝置 存儲 介質 | ||
本發明提供一種基于差異代碼分析的分支檢測方法及其檢測裝置,所述方法包括以下步驟:響應于針對代碼分支的差異檢測指令,獲取代碼倉庫的根目錄下所有構建單元之間的依賴關系;獲取所述構建單元中的差異單元,并根據所述依賴關系獲取與所述差異單元相關聯的依賴單元,所述差異單元表征所述代碼分支中程序文件發生變化的構建單元;根據發生變化的類型對所述差異單元進行分類,得到至少一個分類單元;分別對所述分類單元和所述依賴單元執行不同的檢測操作。
技術領域
本發明涉及計算機軟件開發領域,具體涉及一種基于差異代碼分析的分支檢測方法、裝置及存儲介質。
背景技術
在計算機軟件的敏捷開發過程中,持續集成對于時效的要求尤其敏感,比如開發人員需要在第一時間知道本次提交的代碼單元是否可以構建、代碼檢查是否通過、單元測試是否通過等。
在大倉庫背景下,由于代碼數量眾多,如果每次都對所有構建單元都進行編譯、檢查、單元測試等操作,不僅浪費時間、影響機器性能,而且也無法保證檢測出的構建失敗一定是由于本次提交導致的。
另外,不同的構建單元之間會存在依賴關系,例如A單元的功能實現需要調用B單元的接口,則A單元依賴B單元。在代碼分支中,很可能會出現主動關聯或者被動關聯的構建單元發生變更,進而導致與其有依賴關系的其它構建單元功能癱瘓的問題。
針對現有技術中構建單元數量龐大,并且相互之間存在復雜的依賴關系的現狀,目前尚未提出有效的代碼分支檢測方案。
發明內容
本發明的目的是提供一種基于差異代碼分析的分支檢測方法、裝置及存儲介質,以至少解決現有技術中由于代碼單元數量龐大、相互之間依賴程度高而導致的代碼分支檢測難度大的問題。
為實現上述目的,本發明提供一種基于差異代碼分析的分支檢測方法,包括以下步驟:
響應于針對代碼分支的差異檢測指令,獲取代碼倉庫的根目錄下所有構建單元之間的依賴關系;
獲取所述構建單元中的差異單元,并根據所述依賴關系獲取所述差異單元相關聯的依賴單元,所述差異單元表征所述代碼倉庫中發生變化的程序文件;
根據發生變化的類型對所述差異單元進行分類,得到至少一個分類單元;
分別對所述分類單元和所述依賴單元執行不同的檢測操作。
進一步地,所述獲取代碼倉庫的根目錄下所有構建單元之間的依賴關系的步驟包括:
獲取引用了當前構建單元的一個或多個其它構建單元,將所述一個或多個其它構建單元作為與所述當前構建單元相關聯的依賴單元;
記錄所述當前構建單元和所述依賴單元之間的索引關系;
遍歷代碼倉庫的根目錄下所有構建單元,獲取并記錄每個構建單元和與所述每個構建單元相關聯的依賴單元之間的索引關系。
進一步地,所述獲取代碼倉庫的根目錄下所有構建單元之間的依賴關系的步驟還包括:
根據所述索引關系生成依賴圖,所述依賴圖表征所述構建單元和與所述構建單元相關聯的依賴單元之間的向量引用關系。
進一步地,所述分類單元包括新增單元、修改單元、刪除單元中的一項或多項。
進一步地,所述分別對所述分類單元和所述依賴單元執行不同的檢測操作的步驟包括:
對所述新增單元和所述修改單元執行第一類操作;
對所述刪除單元執行第二類操作;
對所述依賴單元執行第三類操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海嗶哩嗶哩科技有限公司,未經上海嗶哩嗶哩科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811288652.4/2.html,轉載請聲明來源鉆瓜專利網。





