[發明專利]代碼改動影響范圍的評估方法、裝置、設備及存儲介質在審
| 申請號: | 202210731113.3 | 申請日: | 2022-06-24 |
| 公開(公告)號: | CN114968817A | 公開(公告)日: | 2022-08-30 |
| 發明(設計)人: | 趙安琪;程雪梅;汪敏煒;邢亮 | 申請(專利權)人: | 深圳集智數字科技有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京嘉科知識產權代理事務所(特殊普通合伙) 11687 | 代理人: | 楊波 |
| 地址: | 518000 廣東省深圳市南*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 代碼 改動 影響 范圍 評估 方法 裝置 設備 存儲 介質 | ||
1.一種代碼改動影響范圍的評估方法,其特征在于,包括:
確定需要評估的代碼分支,并從分布式版本控制系統中拉取所述代碼分支對應的分支代碼,其中,所述代碼分支包括第一代碼分支和第二代碼分支;
調用代碼比較命令,比較所述第一代碼分支與第二代碼分支之間的代碼差異,基于所述代碼差異確定發生改動的代碼文件,并生成代碼文件改動列表;
利用代碼解析工具遍歷所述代碼文件改動列表中的所有代碼文件,并生成待評估的方法簽名集合,對項目中的源文件進行遍歷,以便解析所述源文件中的每個方法調用,當調用的方法在所述待評估的方法簽名集合中時,記錄方法調用關系;
基于所述方法調用關系及所述調用的方法,對所述待評估的方法簽名集合進行更新,依次對所有的方法調用進行遞歸查找,直至沒有新的調用方法對所述待評估的方法簽名集合進行更新時,根據記錄的所有方法調用關系對代碼改動影響范圍進行評估。
2.根據權利要求1所述的方法,其特征在于,所述確定需要評估的代碼分支,并從分布式版本控制系統中拉取所述代碼分支對應的分支代碼,包括:
基于所述分布式版本控制系統中的代碼提交記錄,確定需要評估的代碼分支,并利用所述代碼解析工具從所述分布式版本控制系統中拉取所述代碼分支對應的分支代碼,其中,所述第一代碼分支包括特性分支,所述第二代碼分支包括主分支。
3.根據權利要求2所述的方法,其特征在于,所述調用代碼比較命令,比較所述第一代碼分支與第二代碼分支之間的代碼差異,基于所述代碼差異確定發生改動的代碼文件,并生成代碼文件改動列表,包括:
調用所述分布式版本控制系統中的diff命令,通過diff命令對所述特性分支與所述主分支之間進行比較,確定所述特性分支與所述主分支之間的代碼差異,基于所述代碼差異確定涉及改動的所有代碼文件的改動位置,根據所述代碼文件的改動位置生成代碼文件改動列表,其中,所述代碼文件改動列表中包含所述代碼文件及所述代碼文件對應的行號。
4.根據權利要求1所述的方法,其特征在于,在所述利用代碼解析工具遍歷所述代碼文件改動列表中的所有代碼文件之前,所述方法還包括:
對所述代碼解析工具的配置進行初始化操作,通過MVN項目管理工具獲取所述項目對應的所有依賴項,將所述依賴項設置到所述代碼解析工具中,其中,所述代碼解析工具采用JavaParser工具。
5.根據權利要求1所述的方法,其特征在于,所述利用代碼解析工具遍歷所述代碼文件改動列表中的所有代碼文件,并生成待評估的方法簽名集合,包括:
利用所述代碼解析工具對每個所述代碼文件中的方法進行解析,得到每個所述方法的簽名和方法體對應的開始位置及結束位置,根據代碼提交記錄以及所述代碼文件改動列表中的所述代碼文件及所述行號,查找所有修改過的代碼對應的方法和簽名,根據所述代碼對應的方法和簽名生成待評估的方法簽名集合。
6.根據權利要求1所述的方法,其特征在于,所述對項目中的源文件進行遍歷,以便解析所述源文件中的每個方法調用,當調用的方法在所述待評估的方法簽名集合中時,記錄方法調用關系,包括:
遍歷所述項目對應的代碼改動后的源文件,利用所述代碼解析工具對所述源文件中的每個方法調用進行解析,以便從所述源文件中查找所有調用了所述待評估的方法簽名集合中的方法的節點;
當所述節點對應方法的開始行號和結束行號,與所述待評估的方法簽名集合中的方法體對應的開始位置及結束位置具有包含關系時,則確定所述節點對應方法與所述待評估的方法簽名集合中的方法具有調用關系,其中,所述源文件中的節點包括類和方法組成的信息。
7.根據權利要求1所述的方法,其特征在于,在所述根據記錄的所有方法調用關系對代碼改動影響范圍進行評估之后,所述方法包括:
在進行遞歸查找后沒有新的待評估的方法簽名時,根據所述待評估的方法簽名集合中所記錄的所有方法調用關系,利用Neo4j圖形數據庫對所述方法調用關系進行處理,并將處理后的所述方法調用關系進行展示。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳集智數字科技有限公司,未經深圳集智數字科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210731113.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:應用程序編譯方法和裝置
- 下一篇:包車費用的支付方法、系統、電子設備和介質





