�零丶脚本起因:
测试需要一个代码提交规范,对每个任务填在表格上
我的思路是,定制git lg 日志,指定代码提交规范,把xml格式的日志,输出到excel上;复制上去就可以;
git自动生成标签<time><author>
人为定制标签:<num><des><rev><ad>
就是说代码提交要按照:
<num>任务编号</num><des>描述</des><rev>代码审核人</rev><ad>安卓互审人</ad>
这个格式来;顺序不敏感
一丶定制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日志;<time>时间</time><author></author>commit标题
格式:
<time>%ai</time><author>%an</author>%s
1.修改:
$open open ~/.gitconfig
2.在[alias]标签修改如下:
[alias]
lg = log --color --pretty=format:'<time>%ai</time><author>%an</author>%s' --abbrev-commit --
3.保存下
结果:
如果想设置颜色,格式如下:
%Cgreen 内容 %Creset
举个例子:
[alias]
lg = log --color --graph --pretty=format:'<时间 :%Cgreen%ai%Creset><作者:%C(bold blue)%an%Creset><内容: %C(red)%s%Creset> ' --abbrev-commit --
二丶生成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了