rpms/kernel/devel gen-patches,1.3,1.4

Roland McGrath (roland) fedora-extras-commits at redhat.com
Thu Jan 3 23:46:43 UTC 2008


Author: roland

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv20844

Modified Files:
	gen-patches 
Log Message:
Soup to handle lagging rebases


Index: gen-patches
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/gen-patches,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gen-patches	19 Dec 2007 09:36:28 -0000	1.3
+++ gen-patches	3 Jan 2008 23:46:08 -0000	1.4
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #
 # This script goes with the Makefile hacks for git/branch builds.
 #
@@ -129,13 +129,36 @@
 GIT_DIFF_OPTS=-pu
 export GIT_DIFF_OPTS
 
+i=0
+last_base=$base
+last_base_rev=$base_rev
 for branch; do
-
-  merge_base=`git-merge-base $base_rev $branch` || {
-    echo >&2 "No common ancestor for $base and $branch"
+  branch_rev=`git-rev-parse $branch` || exit 2
+  merge_base=`git-merge-base $last_base_rev $branch_rev` || {
+    echo >&2 "No common ancestor for $last_base and $branch"
     exit 2
   }
-  branch_rev=`git-rev-parse $branch`
+  if ((i > 0)) && [ "x$merge_base" = "x${merge_rev[$(($i - 1))]}" ]; then
+    echo >&2 "$last_base is not an ancestor of $branch"
+    exit 2
+  fi
+  merge_rev[$i]=$merge_base
+  ((i++))
+  last_base=$branch
+  last_base_rev=$branch_rev
+done
+merge_rev[$i]=$last_base_rev
+
+test "x${merge_rev[0]}" = "x$base_rev" || {
+  echo >&2 "$base is not an ancestor of $branch"
+  exit 2
+}
+
+i=1
+for branch; do
+
+  branch_rev=${merge_rev[$i]}
+  ((i++))
 
   case "$branch" in
   refs/remotes/*/master)
@@ -156,7 +179,7 @@
 
   file=linux-${version}-${branch_name}.patch
   git diff --no-renames --patch-with-stat \
-	   -r "${merge_base}" -r "${branch_rev}" > $file || exit
+	   -r "${base_rev}" -r "${branch_rev}" > $file || exit
   if [ ! -s $file ]; then
     rm -f $file
     continue
@@ -165,8 +188,7 @@
   usepatch $file
   log $branch_rev branch $branch
 
-  base="$branch"
-  base_rev="$base"
+  base_rev="$branch_rev"
 done
 name=`echo ${name:-${branch}} | sed s/-/_/g`
 




More information about the fedora-extras-commits mailing list