是否有任何命令來獲取電子郵件發送/從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從選擇標記獲取信息