From: Harald Hoyer Date: Thu, 27 Jul 2017 14:34:25 +0000 (+0200) Subject: git2spec.pl: handle github merges X-Git-Tag: 046~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ceb910a7332188a6abf920fda9bf5a419aef15d;p=thirdparty%2Fdracut.git git2spec.pl: handle github merges found a nice strategy to produce patchset from merges --- diff --git a/git2spec.pl b/git2spec.pl index 0d8adb4a1..4b03a95cf 100755 --- a/git2spec.pl +++ b/git2spec.pl @@ -3,10 +3,22 @@ sub create_patches { my $tag=shift; my $pdir=shift; - my $num=0; - open( GIT, 'git format-patch -M -N --no-signature -o "'.$pdir.'" '.$tag.' |'); - @lines=; - close GIT; # be done + my $n=1; + my @lines; + + mkdir $pdir, 0755; + + open( GIT, 'git log -p --pretty=email --stat -m --first-parent --reverse '.$tag.'..HEAD |'); + + while () { + if (/^From [a-z0-9]{40} .*$/) { + my $fname = sprintf("%04d", $n++).".patch"; + push @lines, $fname; + open FH, ">".$pdir."/".$fname; + } + print FH; + } + return @lines; }; @@ -35,7 +47,7 @@ while(<>) { $num=1; for(@patches) { s/.*\///g; - print "Patch$num: $_"; + print "Patch$num: $_\n"; $num++; } print "\n";