[kernel-team] 06/47: Add script to list patches applied minus those reverted

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Mon Dec 21 00:30:44 UTC 2015


This is an automated email from the git hooks/post-receive script.

benh pushed a commit to branch master
in repository kernel-team.

commit 04fba0e4101e396a5225da1dc179297f3d6340b2
Author: Ben Hutchings <benh at debian.org>
Date:   Fri Apr 8 13:03:50 2011 +0000

    Add script to list patches applied minus those reverted
    
    svn path=/people/benh/; revision=17214
---
 scripts/benh/debian-kernel-patches-list | 73 +++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)

diff --git a/scripts/benh/debian-kernel-patches-list b/scripts/benh/debian-kernel-patches-list
new file mode 100755
index 0000000..c5d7b58
--- /dev/null
+++ b/scripts/benh/debian-kernel-patches-list
@@ -0,0 +1,73 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use FileHandle;
+use POSIX ();
+
+my @debian_revs;
+my $upstream_ver;
+my $dfsg_rev;
+
+my $log = new FileHandle('dpkg-parsechangelog --format rfc822 --all |');
+while (<$log>) {
+    next unless /^Version: (.*)-(.*)\n/;
+    my ($u, $d) = ($1, $2);
+    my $has_dfsg_rev = $u =~ s/\.dfsg\.(\d+)$//;
+    if (!defined($dfsg_rev)) {
+	$dfsg_rev = $has_dfsg_rev ? $1 : 0;
+    }
+    if (defined($upstream_ver)) {
+	last if $upstream_ver ne $u;
+    } else {
+	$upstream_ver = $u;
+    }
+    push @debian_revs, $d;
+}
+$log->close();
+
+my @series_list = (map({"orig-$_"} (0..$dfsg_rev)), 'base', reverse(@debian_revs));
+my %applied;
+my $pos = 1;
+
+for (@series_list) {
+    my $series_name = "debian/patches/series/$_";
+    my $series = new FileHandle($series_name, 'r');
+    if (!defined($series)) {
+	next if $! == POSIX::ENOENT;
+	die "$series_name: $!";
+    }
+    while (<$series>) {
+	next if /^\s*(#|$)/;
+	/^([-+X]) (\S+)\s*$/ or die "$series_name:$.: unrecognised line";
+	my ($op, $name) = ($1, $2);
+	if ($op eq '-') {
+	    if ($applied{$name}) {
+		delete $applied{$name};
+	    } else {
+		print STDERR "$series_name:$.: reverts $name; not currently applied\n";
+		$applied{$name} = -$pos;
+	    }
+	} elsif ($op eq '+') {
+	    if ($applied{$name}) {
+		if ($applied{$name} < 0) {
+		    delete $applied{$name};
+		} else {
+		    die "$series_name:$.: applies $name; already applied";
+		}
+	    } else {
+		$applied{$name} = $pos;
+	    }
+	} else {
+	    print STDERR "$series_name:$.: ignoring X $name\n";
+	}
+	++$pos;
+    }
+    $series->close();
+}
+
+# Print unreverted patches in order
+for (sort({$applied{$a} <=> $applied{$b}} keys %applied)) {
+    print "$_\n";
+}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/kernel-team.git



More information about the Kernel-svn-changes mailing list