[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