需求:公司软件代码有多条分支,我们要确定同样的代码是否在某两条分支上都提交了,在不能直接从GitHub上获取源代码的前提下,确保不要有代码在某个分支上漏掉。
思路:每一段提交的代码在每个分支上分别有一个简略的说明,通过比较说明粗略判断是否同一段代码在两条分支上都提交了。
实现:
首先引入fuzzywuzzy库。
from fuzzywuzzy import fuzz
定义两个字符串name1和name2,,然后调用fuzz.partial_ratio计算出这两个字符串的匹配度tempScore,分值越高说明越匹配。
tempScore = fuzz.partial_ratio(name1, name2)
由于每条代码分支上都有很多这样的用于简略说明的字符串,这些字符串是存储在csv文件里的,每个代码分支对应一个csv文件。所以在具体的代码里我还引入了pandas库,将简略说明字符串分别从csv里读出来,循环匹配,直到找出两条分支上匹配度(fuzz.partial_ratio)最大的两个字符串。最后将匹配的结果写入一个单独的csv文件,通过匹配度就可以很好地分析两条分支上是否有遗漏的代码了。