git 패치 파일에서 전자 메일을주고받을 수있는 명령이 있습니까? 아니면 패치 파일 구문 분석에서 전자 메일을 읽어야합니까?python을 사용하여 git patch에서 헤더 정보를 가져올 수 있습니까?
1
A
답변
0
에 formail 명령 (자주 생각, 프록와 함께 배포) 이메일 헤더를 추출하는 데 유용 할 수 있습니다 : 임시은 예를 들어, 구문 분석에 비해
formail -x Date < 0000-Some-commit.patch
한 차이를 VonC의 대답에 게시 된 sed 또는 짧은 Perl 스크립트는 줄 바꿈 된 줄 바꿈 줄을 처리한다는 것입니다.
Subject: The line is so long that
is has been wrapped.
Date, From 및 To 행에는 일반적이지 않지만 Subject 행에는 일반적입니다.
formail조차 다루지 않는 또 다른 구두점은 RFC 2047에 따라 인코딩 된 헤더 필드입니다. 이는 라인에 평이한 US-ASCII가 포함되어 있으면 필요합니다.
사용하는 언어에 사용할 수있는 이메일/MIME 구문 분석 라이브러리를 사용하는 것이 좋습니다. Python을 질문 제목으로 언급 했으므로 여기에 git format-patch
으로 만든 파일을 stdin에서 읽고 헤더 일부를 인쇄하는 간단한 Python 예제가 있습니다.
0
구문 분석이 git apply
도움이되지 것이기 때문에, 참여해야한다 :
t/t4100
/t-apply-*.expect 파일 중 하나에서 볼 수 있듯이
git apply --summary
, 날짜 또는 이메일 대한 언급이 없다.
그
는git format-patch
유닉스 사서함 형식을 생산하기 때문에, 당신은 C.
에서 도구 parse such a file에 mailutils 거짓말을 사용할 수 있습니다 또는 (쉽게)하는 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);
}