繼上一篇JSON保存git log歷史記錄里subject帶有特殊字符的轉(zhuǎn)義的處理,獲得的git.json文件進行逐一分析處理妓湘,對比兩個分支之間的實際差異城瞎,并將差異部分發(fā)送給對應(yīng)的author
dir('gitrepo') {
? ? jsonData = readJSON file: 'git.json'
? ? println jsonData
? ? env.git_log = ""
? ? env.emailReceiption = ""
? ? jsonData.each{
? ? ? ? env.commit = it.commit
? ? ? ? subj1 = it.subject
? ? ? ? if(subj1.contains("[") || subj1.contains("]")){
? ? ? ? ? ? subj1 = subj1.replaceAll('\\[','\\\\[')? ? #對[進行轉(zhuǎn)義
? ? ? ? ? ? subj1 = subj1.replaceAll('\\]','\\\\]')? ??#對]進行轉(zhuǎn)義
? ? ? ? }
? ? ? ? if(subj1.contains("(") || subj1.contains(")")){
? ? ? ? ? ? subj1 = subj1.replaceAll('\\(','\\\\(')? ? ?#對(進行轉(zhuǎn)義
? ? ? ? ? ? subj1 = subj1.replaceAll('\\)','\\\\)')? ? ?#對)進行轉(zhuǎn)義
? ? ? ? }
? ? ? ? env.subject = subj1
? ? ? ? env.author = it.author
? ? ? ? println "hello $subject"
? ? ? ? if(subj1.contains("cherry-pick")){? ? #判斷帶有“cherry-pick”字樣的贡必,同時母commit一致往弓,代表兩個分支都存在不是DIFF部分
? ? ? ? ? ? cherryCommit = subj1.split('-')[-1]
? ? ? ? ? ? newCRCommit = cherryCommit.split(' ')[0]
? ? ? ? ? ? env.anCommit = newCRCommit.substring(0, newCRCommit.length() - 1)
? ? ? ? ? ? String masterHas = shResult(
? ? ? ? ? ? ? ? '''
? ? ? ? ? ? ? ? ? ? git show --pretty=tformat:%h $anCommit
? ? ? ? ? ? ? ? '''
? ? ? ? ? ? )
? ? ? ? ? ? println "masterHas is $masterHas"
? ? ? ? ? ? if (masterHas != "") {
? ? ? ? ? ? ? ? println "$subj1 should remove, now remove from jsonData"
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? println "$subj1 should remain"
? ? ? ? ? ? ? ? env.git_log = env.git_log +? """
? ? ? ? ? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ? ? ? <td>$it.commit</td>? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? <td>$it.subject</td>
? ? ? ? ? ? ? ? ? ? ? ? <td>$it.author</td>
? ? ? ? ? ? ? ? ? ? ? ? <td>$it.email</td>
? ? ? ? ? ? ? ? ? ? ? ? <td>$it.date</td>
? ? ? ? ? ? ? ? ? ? </tr>
? ? ? ? ? ? ? ? """
? ? ? ? ? ? ? ? if (!emailReceiption.contains(it.email) && it.email != "dementor@qiyi.com") {
? ? ? ? ? ? ? ? ? ? env.emailReceiption = env.emailReceiption + ";" + it.email
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? } else {
? ? ? ? ? ? String result = shResult(
? ? ? ? ? ? ? ? '''
? ? ? ? ? ? ? ? ? ? git log --pretty=tformat:%h --grep="cherry-pick-${commit%?}"? master ^"${compareBranch}"
? ? ? ? ? ? ? ? '''
? ? ? ? ? ? )
? ? ? ? ? ? println "result is $result"
? ? ? ? ? ? if (result != "") {
? ? ? ? ? ? ? ? println "$subj1 should remove, now remove from jsonData"
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? println "$subj1 should remain"
? ? ? ? ? ? ? ? env.git_log = env.git_log +? """
? ? ? ? ? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ? ? ? <td>$it.commit</td>? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? <td>$it.subject</td>
? ? ? ? ? ? ? ? ? ? ? ? <td>$it.author</td>
? ? ? ? ? ? ? ? ? ? ? ? <td>$it.email</td>
? ? ? ? ? ? ? ? ? ? ? ? <td>$it.date</td>
? ? ? ? ? ? ? ? ? ? </tr>
? ? ? ? ? ? ? ? """
? ? ? ? ? ? ? ? if (!emailReceiption.contains(it.email) && it.email != "dementor@qiyi.com" && it.email != "pangwenyu@qiyi.com") {
? ? ? ? ? ? ? ? ? ? env.emailReceiption = env.emailReceiption + ";" + it.email
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? println emailReceiption
}