From 49ebb358ab3ae8b65ceb97725ee79e821d424f73 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Mon, 12 Nov 2007 15:10:52 -0800 Subject: [PATCH] Handle new PATCH-$name files, improved $last_touch code, fixed handling of dependent patches. --- support/patch-update | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/support/patch-update b/support/patch-update index 2fba7b30..20fbcab8 100755 --- a/support/patch-update +++ b/support/patch-update @@ -15,18 +15,15 @@ $_ = join('', ); close IN; my @extra_files = m{\n([^\s:]+):.*\n\t\S}g; -my $incl_generated_files; - -$incl_generated_files = shift if @ARGV && $ARGV[0] eq '--gen'; +my $incl_generated_files = shift if @ARGV && $ARGV[0] eq '--gen'; system "git-checkout master" and exit 1; -my $last_touch = time; - if ($incl_generated_files) { die "'a' must not exist in the current directory.\n" if -e 'a'; die "'b' must not exist in the current directory.\n" if -e 'b'; system "./prepare-source && rsync -a @extra_files a/" and exit 1; } +my $last_touch = time; my(@patches, %local_patch); if (@ARGV) { @@ -56,15 +53,14 @@ foreach my $patch (@patches) { } else { system "git-checkout --track -b patch/$patch origin/patch/$patch" and exit 1; } - $last_touch = time; my $parent = 'master'; - open(IN, '<', 'PATCH') or next; + open(IN, '<', "PATCH.$patch") or next; open(OUT, '>', "patches/$patch.diff") or die $!; while () { - if (m#patch -p1 ) { - last if m{^diff --git a/PATCH b/PATCH$}; - print OUT $_; + if ($incl_generated_files) { + system "./prepare-source && rsync -a @extra_files b/" and exit 1; } - while () { - last if m{^diff --git a/}; + $last_touch = time; + + open(PIPE, '-|', 'git-diff', $parent) or die $!; + DIFF: while () { + while (m{^diff --git a/PATCH}) { + while () { + last if m{^diff --git a/}; + } + last DIFF if !defined $_; + } + print OUT $_; } - print OUT $_, ; close PIPE; if ($incl_generated_files) { - system "./prepare-source && rsync -a @extra_files b/" and exit 1; open(PIPE, '-|', 'diff', '-up', 'a', 'b') or die $!; while () { s/^((?:---|\+\+\+) [^\t]+)\t.*/$1/; -- 2.34.1