Python_杂技(3)_定制git日志,输出excel文件;

�零丶脚本起因:

测试需要一个代码提交规范,对每个任务填在表格上

Paste_Image.png

我的思路是,定制git lg 日志,指定代码提交规范,把xml格式的日志,输出到excel上;复制上去就可以;

git自动生成标签

就是说代码提交要按照:

任务编号描述代码审核人安卓互审人

这个格式来;顺序不敏感

一丶定制git Lg

# 参数定义列表
'%H': commit hash
'%h': 缩短的commit hash
'%T': tree hash
'%t': 缩短的 tree hash
'%P': parent hashes
'%p': 缩短的 parent hashes
'%an': 作者名字
'%aN': mailmap的作者名字 (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
'%ae': 作者邮箱
'%aE': 作者邮箱 (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
'%ad': 日期 (--date= 制定的格式)
'%aD': 日期, RFC2822格式
'%ar': 日期, 相对格式(1 day ago)
'%at': 日期, UNIX timestamp
'%ai': 日期, ISO 8601 格式
'%cn': 提交者名字
'%cN': 提交者名字 (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
'%ce': 提交者 email
'%cE': 提交者 email (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
'%cd': 提交日期 (--date= 制定的格式)
'%cD': 提交日期, RFC2822格式
'%cr': 提交日期, 相对格式(1 day ago)
'%ct': 提交日期, UNIX timestamp
'%ci': 提交日期, ISO 8601 格式
'%d': ref名称
'%e': encoding
'%s': commit信息标题
'%f': sanitized subject line, suitable for a filename
'%b': commit信息内容
'%N': commit notes
'%gD': reflog selector, e.g., refs/stash@{1}
'%gd': shortened reflog selector, e.g., stash@{1}
'%gs': reflog subject
'%Cred': 切换到红色
'%Cgreen': 切换到绿色
'%Cblue': 切换到蓝色
'%Creset': 重设颜色
'%C(...)': 制定颜色, as described in color.branch.* config option
'%m': left, right or boundary mark
'%n': 换行
'%%': a raw %
'%x00': print a byte from a hex code
'%w([[,[,]]])': switch line wrapping, like the -w option of git-shortlog(1).

需求:
我要定制一个xml格式的git日志;commit标题

格式:

%an%s

1.修改:

$open open ~/.gitconfig

2.在[alias]标签修改如下:
[alias]
     lg = log --color --pretty=format:'%an%s' --abbrev-commit --

3.保存下

结果:

Paste_Image.png

如果想设置颜色,格式如下:

%Cgreen 内容 %Creset

举个例子:

[alias]
        lg = log --color --graph --pretty=format:'<时间 :%Cgreen%ai%Creset><作者:%C(bold blue)%an%Creset><内容: %C(red)%s%Creset> ' --abbrev-commit --
Paste_Image.png

二丶生成excel

上脚本:

#!/usr/bin/python
#-*- coding: utf-8 -*-
#encoding=utf-8
import os
from bs4 import BeautifulSoup
import xlwt
os.system('git lg > hyd.xml')
 
with open('hyd.xml', 'r') as f:
    xml_doc =f.read()   #读取xml文本内容
soup = BeautifulSoup(xml_doc, 'html.parser')
keyword = ['num','time','author','des','rev','ad']  #关键词list
datatable = xlwt.Workbook(encoding='utf-8', style_compression=0)   
newsheet = datatable.add_sheet('mxxx', cell_overwrite_ok=True)  #新建excel文档sheet
num = 0 #列
for i in range(len(keyword)):
    newsheet.write(0, num, keyword[i])  #写入每列keyword
    info_list = []
    for se in soup.find_all(keyword[i]):
         info = se.get_text()
         info_list.append(info) #找出所有对应标签内的text组成list
    print(info_list)
    for i in range(len(info_list)):
        newsheet.write(i+1, num, info_list[i])  #将该list中数据以列写入excel表
    num += 1    #列数加一,继续遍历关键词写入excel表格
datatable.save('hydGitLog.xls')
 
os.system('mv hydGitLog.xls /Users/hyd/Desktop/hydGitLog.xls')

修改下最后的桌面路径;
把脚本复制到你工程目录下,运行一下就ok了

三丶最终效果:

Python_杂技(3)_定制git日志,输出excel文件;_第1张图片
Paste_Image.png

你可能感兴趣的:(Python_杂技(3)_定制git日志,输出excel文件;)