我最终使用以下 Git 命令进行测试:
git log --pretty=format:'%h|%C(green)%aN%C(reset)|%C(yellow)%ae%C(reset)|%C(cyan)%ad%C(reset)|%s'
Run Code Online (Sandbox Code Playgroud)
然后,我使用它格式化为易于阅读和解析的输入文件:
git log --pretty=format:'%H|%aN|%ae|%ad|%s' > some_file.txt
Run Code Online (Sandbox Code Playgroud)
最终决定执行以下操作,输出一个可以轻松反序列化为 POCO 的 JSON:
log --date=iso --pretty=format:'{\"ShortHash\":\"%h\",\"Name\":\"%an\",\"Email\":\"%ae\",\"Date\":\"%ad\",\"Subject\":\"%s\"}'
Run Code Online (Sandbox Code Playgroud)
为了“聪明”,我已经结束了针对上述输出文件运行 linqpad 脚本,其中主要工作是通过以下方式完成的:
bool BetweenBusinessHours(string anHour, string aStart = "08:30", string anEnd="17:00") {
return (anHour.CompareTo(aStart) > 0)
&& (anHour.CompareTo(anEnd) < 0) ;
}
bool DuringWeekend(string aShortDay) {
return aShortDay.Equals("Sat")
|| aShortDay.Equals("Sun") ;
}
Run Code Online (Sandbox Code Playgroud)