是否有任何命令来获取电子邮件发送/从git补丁文件的日期或我必须从解析补丁文件中读取它?如何使用python从git补丁中获取标题信息?
1
A
回答
0
的FORMAIL命令(往往分布与procmail的,我认为)可能是用于提取电子邮件标题有用:相比特设有例如解析
formail -x Date < 0000-Some-commit.patch
一个区别sed或VonC答案中发布的短Perl脚本是它处理换行包头的行。
Subject: The line is so long that
is has been wrapped.
这对于日期,发件人和收件人行应该是不寻常的,但对于主题行是很常见的。
即使不是formail处理的另一个角落案例是根据RFC 2047进行编码的头字段,如果该行包含任何内容但不含纯US-ASCII,则这是必需的。
我建议您使用任何可用于您使用的语言的电子邮件/ MIME解析库。由于您在问题标题中提到了Python,下面是一个简短的Python示例,用于读取由标准输入由git format-patch
创建的文件并打印它的一些标题:
import email.header
import email.parser
import sys
def decode_header(s):
return ' '.join(
text.decode(charset) if charset else text
for text, charset in email.header.decode_header(s))
message = email.parser.Parser().parse(sys.stdin)
print decode_header(message['From'])
print decode_header(message['Date'])
print decode_header(message['Subject'])
0
解析应该参与,因为这git apply
无助:
git apply --summary
正如你可以在任何t/t4100
/t-apply-*.expect文件看,有没有日期或电子邮件的提。
话虽这么说,因为git format-patch
产生的Unix邮箱格式,你可以使用工具躺在mailutils到parse such a file在C.
或(容易),用perl script。
while (($line = <F>)) {
# set variables in order
chomp($line);
if ($line =~ /^From /){
$count++;
}
elsif ($line =~ /^Date:/){
($date_text,$date) = split(/:/,$line);
}
elsif ($line =~ /^From:/){
($from_text,$from) = split(/:/,$line);
}
elsif ($line =~ /^Subject:/){
($subject_text,$subject) = split(/:/,$line);
}
相关问题
- 1. Git使用补丁
- 2. 如何从Windows API的win7注册表中获取补丁信息?
- 3. Apache Ambari补丁信息
- 4. 如何使用git-extensions创建补丁
- 5. Netlogo:如何使补丁有一定的红色补丁距离信息
- 6. 在c中获取补丁文件的版本信息#
- 7. Git应用补丁
- 8. 如何从标准中获取信息?
- 9. 从模拟补丁/ Python中
- 10. 使用Python从SQL表获取信息
- 11. 使用python从网站获取信息
- 12. 补丁如何在Git中工作?
- 13. 如何在angularjs中使用http获取标题信息?
- 14. 如何为特定提交获取“git log”补丁
- 15. 如何获取由此git脚本所做的补丁列表?
- 16. Git补丁Java Imports
- 17. GIT补丁 - 或 - 推?
- 18. 从redirrected页面获取标题信息
- 19. python补丁:如何申请
- 20. git的格式补丁输出文件没有提交信息
- 21. 如何从git标签中读取标签信息?
- 22. git:补丁不适用
- 23. 如何从git存储库提取提交补丁
- 24. 如何使用Mylyn在Eclipse中获取Gerrit变更补丁集?
- 25. 如何使用Python 3.1.1获取dll的目标平台信息?
- 26. 绘制从surf2patch获取的补丁 - Matlab
- 27. 使用git的电子邮件补丁
- 28. 如何使用Jquery获取链接标题信息?
- 29. Netlogo在补丁3中添加补丁的平均距离信息-3
- 30. 使用Python Tornado从选择标记获取信息