All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pavel Machek <pavel@ucw.cz>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Jean Delvare <khali@linux-fr.org>,
	lasse.collin@tukaani.org,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: ketchup was Re: [kernel.org users] XZ Migration discussion
Date: Mon, 22 Feb 2010 19:59:28 +0100	[thread overview]
Message-ID: <20100222185928.GA1572@ucw.cz> (raw)
In-Reply-To: <20100221135341.GC1307@ucw.cz>

On Sun 2010-02-21 14:53:41, Pavel Machek wrote:
> On Tue 2010-02-16 17:27:45, Pavel Machek wrote:
> > Add --only-dl option -- when you want to cache the needed patches but
> > not apply anything yet.
> 
> Actually, you'll probably get a better patch if you relace 'only-dl'
> with just 'dl'. Mistaking --only-dl and --dl-only is just too easy.

This should work; save time&bandwidth by using incremental patches
between -rcX.

Is there testsuite for ketchup? It would be useful at this point...

   	 	       		   	    	      	   Pavel

--- ketchup.orig	2010-02-16 16:36:51.000000000 +0100
+++ ketchup	2010-02-22 19:53:56.000000000 +0100
@@ -107,19 +107,32 @@
 # Functions to parse version strings
 
 def tree(ver):
+    """returns 2.6"""
     return float(re.match(r'(\d+\.\d+)', ver).group(1))
 
+def rawrev(ver):
+    """given 2.6.31 or 2.6.31-rc1 returns 31"""
+    return int(re.match(r'\d+\.\d+\.(\d+)', ver).group(1))
+
 def rev(ver):
+    """given 2.6.31 or 2.6.32-rc1 returns 31"""
     p = pre(ver)
-    r = int(re.match(r'\d+\.\d+\.(\d+)', ver).group(1))
+    r = rawrev(ver)
     if p: r = r - 1
     return r
 
 def pre(ver):
+    """returns rc5"""
     try: return re.match(r'\d+\.\d+\.\d+(\.\d+)?-((rc|pre)\d+)', ver).group(2)
     except: return None
 
+def next_pre(ver, inc = 1):
+    s = pre(ver)
+    i = int(re.match(r'rc(\d+)', s).group(1))
+    return "rc%d" % (i+inc)
+
 def post(ver):
+    """given 2.6.27.1 returns 1"""
     try: return re.match(r'\d+\.\d+\.\d+\.(\d+)', ver).group(1)
     except: return None
 
@@ -132,9 +145,15 @@
     except: return None
 
 def prebase(ver):
+    """returns 2.6.13-rc1"""
     return re.match(r'(\d+\.\d+\.\d+((-(rc|pre)|\.)\d+)?)', ver).group(1)
 
+def preincr(ver):
+    """only use when incremental patches are requested"""
+    return re.match(r'(\d+\.\d+\.\d+((-(rc|pre)|\.).+)?)', ver).group(1)
+
 def revbase(ver):
+    """returns 2.6.23 for 2.6.23.15 or 2.6.24-rc5"""
     return "%s.%s" % (tree(ver), rev(ver))
 
 def base(ver):
@@ -283,8 +302,12 @@
     f = forkname(ver)
     p = pre(ver)
 
+    print "find_info (ver) ", ver, "f=", f
+
     s = b
-    if f:
+    if re.match(".*rc.*rc.*", ver):
+        s = "%s-incrc" %b
+    elif f:
         s = "%s-%s" % (b, f)
     elif p:
         s = "%s-pre" % b
@@ -297,11 +320,14 @@
     if type(i) != type([]):
         i = [i]
 
+    print "version urls i = ", i    
+
     v = {
         'full': ver,
         'tree': tree(ver),
         'base': base(ver),
-        'prebase': prebase(ver)
+        'prebase': prebase(ver),
+        'preincr': preincr(ver),
         }
 
     l = []
@@ -399,6 +425,7 @@
 def apply_patch(ver, reverse = 0):
     """Find the patch to upgrade from the predecessor of ver to ver and
     apply or reverse it."""
+    print 'apply patch ', ver, ' reverse = ', reverse
     p = get_patch(ver)
     r = ""
     if reverse:
@@ -501,6 +528,24 @@
     else:
         return ver
 
+def step_rc(a, b):
+    rc1base = "%s.%s" % (tree(b), rawrev(b))    
+    print 'stepping from ', a, ' to ', b 
+    while pre(a) != pre(b):
+        if pre(a) < pre(b):
+            next = next_pre(a, 1)
+            s = ("%s-%s-%s" % (rc1base, pre(a), next))
+            apply_patch(s)
+        else:
+            next = next_pre(a, -1)
+            s = ("%s-%s-%s" % (rc1base, next, pre(a)))
+            apply_patch(s, 1)
+
+        print "Applying ", s
+
+        a = "%s-%s" % (rc1base, next)
+        print "Should be at ", a
+
 def transform(a, b):
     if a == b:
         qprint("Nothing to do!")
@@ -514,10 +559,25 @@
     if fork(a):
         apply_patch(a, 1)
         a = prebase(a)
+
+    if base(a) == base(b):
+        if pre(a) and pre(b):
+            print a, ' to ', b, ' possible small steps'
+            step_rc(prebase(a), prebase(b))
+            a = prebase(b)
+
     if prebase(a) != prebase(b):
-        if pre(a):
-            apply_patch(a, 1)
-            a = base(a)
+        print 'prebase ', a, ' is not prebase ', b
+        if (rev(a) != rev(b)) and pre(a):
+            print 'stepping to release, first'
+            rc1base = "%s.%s" % (tree(a), rawrev(a))
+            rc1 = rc1base + '-rc1'
+            print "Base is ", rc1base, "now at ", a, " should go to ", rc1
+            step_rc(a, rc1)
+            print "Should now be on -rc1"
+            apply_patch(rc1, 1)
+            a = base(rc1)
+            print "Should now be at", a
 
         if post(a) and (post(a) != post(b) or rev(a) != rev(b)):
             apply_patch(prebase(a), 1)
@@ -536,9 +596,12 @@
             a = base(b)
 
         if pre(b):
-            apply_patch(prebase(b))
-            a = prebase(b)
-
+            rc1base = "%s.%s" % (tree(b), rawrev(b))
+            rc1 = rc1base + '-rc1'
+            print "Base is ", rc1base, "now at ", a, " should go to ", b
+            apply_patch(rc1)
+            step_rc(rc1, b)
+            
     if fork(b):
         a = apply_patch(b)
 
@@ -573,6 +636,10 @@
             kernel_url + "/v2.6" + "/patch-%(prebase)s.bz2",
             r'patch-(.*?).bz2',
             1, "current stable kernel series"),
+    '2.6-incrc': (latest_dir,
+                kernel_url + "/v2.6" + "/testing/incr/patch-%(preincr)s.bz2",
+                r'patch-(.*?).bz2',
+                1, "current stable kernel series prereleases -- incremental"),
     '2.6-rc': (latest_dir,
                 kernel_url + "/v2.6" + "/testing/patch-%(prebase)s.bz2",
                 r'patch-(.*?).bz2',




-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

  parent reply	other threads:[~2010-02-22 18:59 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-11 18:36 XZ Migration discussion J.H.
2010-02-11 19:44 ` david
2010-02-11 19:48 ` H. Peter Anvin
2010-02-12  0:14   ` [kernel.org mirrors] " Carlos Carvalho
2010-02-11 20:22 ` [kernel.org users] " Willy Tarreau
2010-02-11 20:51 ` Pavel Machek
2010-02-11 22:22   ` H. Peter Anvin
2010-02-12 14:35     ` Jean Delvare
2010-02-13 17:10   ` Jean Delvare
2010-02-13 18:49     ` Geert Uytterhoeven
2010-02-13 19:30       ` Randy Dunlap
2010-02-16 14:55       ` Steven Rostedt
2010-02-13 23:28     ` Stefan Richter
2010-02-14  9:07       ` Jean Delvare
2010-02-13 23:52     ` Phillip Lougher
2010-02-14  9:23       ` Jean Delvare
2010-02-14  9:33         ` Justin P. Mattock
2010-02-14  9:49         ` Willy Tarreau
2010-02-14 12:43           ` Jean Delvare
2010-02-15 21:31           ` James Cloos
2010-02-17  5:40             ` Willy Tarreau
2010-02-17  5:54               ` H. Peter Anvin
2010-02-17 10:22               ` Petri Kaukasoina
2010-02-17 10:25               ` Petri Kaukasoina
2010-02-14  9:56       ` Andi Kleen
2010-02-18 23:59         ` Jan Engelhardt
2010-02-14 10:16       ` Lasse Collin
2010-02-12 14:01 ` Jean Delvare
2010-02-12 15:21   ` Linus Torvalds
2010-02-12 19:02     ` J.H.
2010-02-12 19:23       ` Jean Delvare
2010-02-12 23:07         ` Willy Tarreau
2010-02-13  6:20           ` Pavel Machek
2010-02-13 10:06             ` Stefan Richter
2010-02-13 10:21               ` Stefan Richter
2010-02-14  9:56                 ` Lasse Collin
2010-02-13  8:17           ` Jean Delvare
2010-02-13  9:59             ` Stefan Richter
2010-02-13 10:18               ` Avi Kivity
2010-02-13 21:37                 ` [kernel] " Mr. James W. Laferriere
2010-02-13 22:39                   ` Bernd Petrovitsch
2010-02-15 19:33                     ` [kernel.org users] [kernel] " Steve French
2010-02-16  9:16                       ` Bernd Petrovitsch
2010-02-16 15:13                         ` J.H.
2010-02-14 17:13               ` [kernel.org users] " Pavel Machek
2010-02-14 17:33                 ` Stefan Richter
2010-02-14 20:51                   ` Pavel Machek
2010-02-15  8:48                     ` Stefan Richter
2010-02-15 23:32                       ` Tom Rini
2010-02-16  8:21                         ` Stefan Richter
2010-02-14 17:07             ` Pavel Machek
2010-02-14 18:39               ` Stefan Richter
2010-02-14 21:04                 ` david
2010-02-14 21:32                   ` Jean Delvare
2010-02-14 18:59               ` H. Peter Anvin
2010-02-14 19:08               ` Jean Delvare
2010-02-15 15:15                 ` tytso
2010-02-16 15:29                   ` J.H.
2010-02-16 16:03                     ` Jean Delvare
2010-02-17  1:36                     ` David Rees
2010-02-16 14:00                 ` Pavel Machek
2010-02-19  0:08     ` Jan Engelhardt
2010-02-19  4:38       ` J.H.
2010-02-12 15:25   ` Steven Rostedt
2010-02-12 16:11     ` Jean Delvare
2010-02-12 16:30       ` Steven Rostedt
2010-02-12 16:44         ` Jean Delvare
2010-02-12 20:34         ` Junio C Hamano
2010-02-12 21:16           ` Steven Rostedt
2010-02-16 15:39     ` ketchup was " Pavel Machek
2010-02-16 16:17       ` Steven Rostedt
2010-02-16 16:27         ` Pavel Machek
2010-02-21 13:53           ` Pavel Machek
2010-02-21 14:26             ` Jean Delvare
2010-02-21 19:28               ` Pavel Machek
2010-02-22 18:59             ` Pavel Machek [this message]
2010-02-23 13:14               ` Steven Rostedt
2010-02-23 20:32                 ` Pavel Machek
2010-02-12 19:02   ` Phillip Lougher
2010-02-12 19:32     ` Jean Delvare
2010-02-12 19:57       ` Phillip Lougher
2010-02-12 21:59         ` Jean Delvare
2010-02-12 23:30           ` Phillip Lougher
2010-02-12 23:39           ` Phillip Lougher
2010-02-13  7:31             ` Jean Delvare
2010-02-13 22:37               ` Phillip Lougher
2010-02-14  9:32                 ` Jean Delvare
2010-02-14  9:53                   ` Justin P. Mattock
     [not found]           ` <20100212223547.GN5186@tux>
2010-02-13  7:20             ` Jean Delvare
2010-02-12 19:03   ` H. Peter Anvin
2010-02-12 20:25     ` Matthew Wilcox
2010-02-12 21:54       ` Greg KH
2010-02-12 21:58       ` Steven Rostedt
2010-02-14 14:49       ` Harald Arnesen
2010-02-14 18:34         ` H. Peter Anvin
2010-02-12 20:31     ` [kernel.org mirrors] " Sleddens, J.P.G.
2010-02-12 22:11       ` H. Peter Anvin
2010-02-12 23:14         ` [kernel.org users] [kernel.org mirrors] " Willy Tarreau
2010-02-13  7:42     ` [kernel.org users] " Tony Luck
2010-02-13  8:14       ` H. Peter Anvin
2010-02-13  8:53         ` Jean Delvare
2010-02-14  5:43           ` H. Peter Anvin
     [not found]             ` <987664A83D2D224EAE907B061CE93D53123E0ED5@orsmsx505.amr.corp.intel.com>
2010-02-17  0:11               ` H. Peter Anvin
2010-02-14 18:03 ` Eric W. Biederman
2010-02-14 22:27   ` Stephen Hemminger
2010-02-15 16:15     ` Jean Delvare

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100222185928.GA1572@ucw.cz \
    --to=pavel@ucw.cz \
    --cc=khali@linux-fr.org \
    --cc=lasse.collin@tukaani.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.