-Content-type: text/plain
+Author: benf
-Date: Fri, 18 Apr 2008 11:21:03 +0000
+Content-type: text/plain
-From: benf
+Date: Fri, 18 Apr 2008 11:21:03 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Sat, 11 Jul 2009 14:08:45 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Sat, 11 Jul 2009 14:08:45 +0000
In-reply-to: 4be73baf-e46b-4acb-a58e-4719e57c550b
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Thu, 04 Dec 2008 13:35:41 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Thu, 04 Dec 2008 13:35:41 +0000
+Author: abentley
-
-Content-type=text/rst
-
-
-
-
-
-
-Date=Thu, 06 Apr 2006 16:47:25 +0000
-
-
-
-
-
-
-From=abentley
+Content-type: text/rst
+Date: Thu, 06 Apr 2006 16:47:25 +0000
+Author: abentley
+Content-type: text/restructured
-Content-type=text/restructured
+Date: Thu, 06 Apr 2006 16:54:57 +0000
-
-
-
-Date=Thu, 06 Apr 2006 16:54:57 +0000
-
-
-
-
-
-
-From=abentley
-
-
-
-
-
-
-In-reply-to=144c238c-75d1-40f1-82c1-647668bcf2bc
-
-
+In-reply-to: 144c238c-75d1-40f1-82c1-647668bcf2bc
+Author: hubert
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Mon, 23 Jun 2008 05:02:22 +0000
-
-
-
-
-
-
-From=hubert
+Content-type: text/plain
+Date: Mon, 23 Jun 2008 05:02:22 +0000
+Author: hubert
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Tue, 24 Jun 2008 02:45:18 +0000
-
-
-
-
-
-
-From=hubert
+Content-type: text/plain
+Date: Tue, 24 Jun 2008 02:45:18 +0000
+Author: wking
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Sun, 16 Nov 2008 20:36:20 +0000
-
-
-
-
-
-
-From=wking
+Content-type: text/plain
+Date: Sun, 16 Nov 2008 20:36:20 +0000
+Author: wking
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Thu, 13 Nov 2008 19:31:04 +0000
-
-
-
-
-
-
-From=wking
+Content-type: text/plain
+Date: Thu, 13 Nov 2008 19:31:04 +0000
+Author: wking
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Thu, 13 Nov 2008 20:18:02 +0000
-
-
-
-
-
-
-From=wking
+Content-type: text/plain
+Date: Thu, 13 Nov 2008 20:18:02 +0000
Alt-id: <874otjmjhr.fsf@benfinney.id.au>
-Content-type: text/plain
+Author: Ben Finney <bignose+hates-spam@benfinney.id.au>
-Date: Sat, 11 Jul 2009 23:34:08 +1000
+Content-type: text/plain
-From: Ben Finney <bignose+hates-spam@benfinney.id.au>
+Date: Sat, 11 Jul 2009 23:34:08 +1000
In-reply-to: 88d1f2c2-e1af-4f0d-9390-e3c89ae4f7d7
Alt-id: <20090711125030.GA18185@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Sat, 11 Jul 2009 08:50:30 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Sat, 11 Jul 2009 08:50:30 -0400
In-reply-to: 88d1f2c2-e1af-4f0d-9390-e3c89ae4f7d7
Alt-id: <878wivmjm1.fsf@benfinney.id.au>
-Content-type: text/plain
+Author: Ben Finney <bignose+hates-spam@benfinney.id.au>
-Date: Sat, 11 Jul 2009 23:31:34 +1000
+Content-type: text/plain
-From: Ben Finney <bignose+hates-spam@benfinney.id.au>
+Date: Sat, 11 Jul 2009 23:31:34 +1000
In-reply-to: 88d1f2c2-e1af-4f0d-9390-e3c89ae4f7d7
Alt-id: <20090713104715.GA13723@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Mon, 13 Jul 2009 06:47:15 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Mon, 13 Jul 2009 06:47:15 -0400
In-reply-to: 6dcc910a-ce15-4eeb-b49b-4747719748ed
Alt-id: <20090713115734.GA13788@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Mon, 13 Jul 2009 07:57:34 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Mon, 13 Jul 2009 07:57:34 -0400
In-reply-to: bd98f525-95ec-446a-84e8-34c7d6fa5b40
Alt-id: <20090712235502.GA10782@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Sun, 12 Jul 2009 19:55:02 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Sun, 12 Jul 2009 19:55:02 -0400
In-reply-to: 8ffc90d7-0be7-4b00-88e6-9ae1b65f7957
Alt-id: <1247468734.7189.1.camel@localhost>
-Content-type: text/plain
+Author: Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
-Date: Mon, 13 Jul 2009 09:05:34 +0200
+Content-type: text/plain
-From: Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
+Date: Mon, 13 Jul 2009 09:05:34 +0200
In-reply-to: 4d192c6c-a4a8-4844-b083-2dd5926bd2d9
Alt-id: <1247313294.7701.60.camel@localhost>
-Content-type: text/plain
+Author: Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
-Date: Sat, 11 Jul 2009 13:54:54 +0200
+Content-type: text/plain
-From: Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
+Date: Sat, 11 Jul 2009 13:54:54 +0200
Alt-id: <1247433610.14803.3.camel@localhost>
-Content-type: text/plain
+Author: Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
-Date: Sun, 12 Jul 2009 23:20:10 +0200
+Content-type: text/plain
-From: Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
+Date: Sun, 12 Jul 2009 23:20:10 +0200
In-reply-to: bd98f525-95ec-446a-84e8-34c7d6fa5b40
Alt-id: <20090711152507.GA18461@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Sat, 11 Jul 2009 11:25:07 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Sat, 11 Jul 2009 11:25:07 -0400
In-reply-to: e520239c-8d69-4ff6-b1bd-0c2f74366200
Alt-id: <20090713085859.GA21800@grys.it>
-Content-type: text/plain
+Author: Gianluca Montecchi <gian@grys.it>
-Date: Mon, 13 Jul 2009 10:58:59 +0200
+Content-type: text/plain
-From: Gianluca Montecchi <gian@grys.it>
+Date: Mon, 13 Jul 2009 10:58:59 +0200
In-reply-to: e520239c-8d69-4ff6-b1bd-0c2f74366200
Alt-id: <1247320857.7701.67.camel@localhost>
-Content-type: text/plain
+Author: Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
-Date: Sat, 11 Jul 2009 16:00:57 +0200
+Content-type: text/plain
-From: Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
+Date: Sat, 11 Jul 2009 16:00:57 +0200
In-reply-to: 0f60a148-7024-44bd-bbed-377cbece9d1b
Alt-id: <1247317985.7701.63.camel@localhost>
-Content-type: text/plain
+Author: Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
-Date: Sat, 11 Jul 2009 15:13:05 +0200
+Content-type: text/plain
-From: Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
+Date: Sat, 11 Jul 2009 15:13:05 +0200
In-reply-to: 13012b22-2d02-444c-87c0-8cf0f17137ae
Alt-id: <87zlbbl128.fsf@benfinney.id.au>
-Content-type: text/plain
+Author: Ben Finney <bignose+hates-spam@benfinney.id.au>
-Date: Sun, 12 Jul 2009 00:57:35 +1000
+Content-type: text/plain
-From: Ben Finney <bignose+hates-spam@benfinney.id.au>
+Date: Sun, 12 Jul 2009 00:57:35 +1000
In-reply-to: 88d1f2c2-e1af-4f0d-9390-e3c89ae4f7d7
Alt-id: <20090713090341.GB21800@grys.it>
-Content-type: text/plain
+Author: Gianluca Montecchi <gian@grys.it>
-Date: Mon, 13 Jul 2009 11:03:41 +0200
+Content-type: text/plain
-From: Gianluca Montecchi <gian@grys.it>
+Date: Mon, 13 Jul 2009 11:03:41 +0200
In-reply-to: 1f9f60de-ba37-42bc-a1c0-dc062ef255e1
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Thu, 04 Dec 2008 17:16:11 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Thu, 04 Dec 2008 17:16:11 +0000
-Content-type: text/plain
+Author: abentley
-Date: Mon, 17 Apr 2006 20:59:15 +0000
+Content-type: text/plain
-From: abentley
+Date: Mon, 17 Apr 2006 20:59:15 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 21:29:13 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 21:29:13 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 21:29:33 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 21:29:33 +0000
+Author: abentley
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Sat, 01 Apr 2006 18:32:47 +0000
-
-
-
-
-
-
-From=abentley
+Content-type: text/plain
+Date: Sat, 01 Apr 2006 18:32:47 +0000
+Author: wking
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Fri, 14 Nov 2008 05:00:43 +0000
-
-
-
-
-
-
-From=wking
+Content-type: text/plain
+Date: Fri, 14 Nov 2008 05:00:43 +0000
+Author: abentley
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Wed, 04 Jan 2006 21:03:54 +0000
-
-
-
-
-
-
-From=abentley
+Content-type: text/plain
+Date: Wed, 04 Jan 2006 21:03:54 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Thu, 04 Dec 2008 17:21:08 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Thu, 04 Dec 2008 17:21:08 +0000
Alt-id: <87hbxqrckv.fsf@benfinney.id.au>
-Content-type: text/plain
+Author: Ben Finney <bignose+hates-spam@benfinney.id.au>
-Date: Mon, 06 Jul 2009 08:26:24 +1000
+Content-type: text/plain
-From: Ben Finney <bignose+hates-spam@benfinney.id.au>
+Date: Mon, 06 Jul 2009 08:26:24 +1000
In-reply-to: cb5689f4-7c36-4c44-b380-ca9e06e80bae
Alt-id: <87y6r5qoyw.fsf@benfinney.id.au>
-Content-type: text/plain
+Author: Ben Finney <bignose+hates-spam@benfinney.id.au>
-Date: Sat, 04 Jul 2009 10:19:35 +1000
+Content-type: text/plain
-From: Ben Finney <bignose+hates-spam@benfinney.id.au>
+Date: Sat, 04 Jul 2009 10:19:35 +1000
In-reply-to: cb5689f4-7c36-4c44-b380-ca9e06e80bae
Alt-id: <87skh9p8ax.fsf@benfinney.id.au>
-Content-type: text/plain
+Author: Ben Finney <bignose+hates-spam@benfinney.id.au>
-Date: Tue, 07 Jul 2009 11:53:58 +1000
+Content-type: text/plain
-From: Ben Finney <bignose+hates-spam@benfinney.id.au>
+Date: Tue, 07 Jul 2009 11:53:58 +1000
In-reply-to: cb5689f4-7c36-4c44-b380-ca9e06e80bae
Alt-id: <20090706104839.GA19537@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Mon, 6 Jul 2009 06:48:39 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Mon, 6 Jul 2009 06:48:39 -0400
In-reply-to: 074ef29a-3f1d-46dc-8561-7a56af7e6d67
Alt-id: <20090705143108.GB10709@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Sun, 5 Jul 2009 10:31:08 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Sun, 5 Jul 2009 10:31:08 -0400
In-reply-to: 1dba8196-654b-4ca0-9a95-fb334af81863
Alt-id: <20090707013454.GA3721@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Mon, 6 Jul 2009 21:34:54 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Mon, 6 Jul 2009 21:34:54 -0400
In-reply-to: da97e18f-33d6-469e-9d93-6457b9a6bfca
Alt-id: <200907062218.33895.gian@grys.it>
-Content-type: text/plain
+Author: Gianluca Montecchi <gian@grys.it>
-Date: Mon, 06 Jul 2009 22:18:33 +0200
+Content-type: text/plain
-From: Gianluca Montecchi <gian@grys.it>
+Date: Mon, 06 Jul 2009 22:18:33 +0200
In-reply-to: 1dba8196-654b-4ca0-9a95-fb334af81863
Alt-id: <m3iqi9thk1.fsf@pullcord.laptop.org>
-Content-type: text/plain
+Author: Chris Ball <cjb@laptop.org>
-Date: Fri, 03 Jul 2009 20:31:26 -0400
+Content-type: text/plain
-From: Chris Ball <cjb@laptop.org>
+Date: Fri, 03 Jul 2009 20:31:26 -0400
In-reply-to: cb5689f4-7c36-4c44-b380-ca9e06e80bae
Alt-id: <6f719a1c43fdcba8bdbfee1130072595.squirrel@webmail.grys.it>
-Content-type: text/plain
+Author: gian@grys.it
-Date: Tue, 07 Jul 2009 14:15:08 +0200
+Content-type: text/plain
-From: gian@grys.it
+Date: Tue, 07 Jul 2009 14:15:08 +0200
In-reply-to: 83202b83-eea8-452f-8239-d468940bddba
Alt-id: <200907032250.17327.gian@grys.it>
-Content-type: text/plain
+Author: Gianluca Montecchi <gian@grys.it>
-Date: Fri, 03 Jul 2009 22:50:17 +0200
+Content-type: text/plain
-From: Gianluca Montecchi <gian@grys.it>
+Date: Fri, 03 Jul 2009 22:50:17 +0200
Alt-id: <200907062246.54804.gian@grys.it>
-Content-type: text/plain
+Author: Gianluca Montecchi <gian@grys.it>
-Date: Mon, 06 Jul 2009 22:46:54 +0200
+Content-type: text/plain
-From: Gianluca Montecchi <gian@grys.it>
+Date: Mon, 06 Jul 2009 22:46:54 +0200
In-reply-to: b900f7fd-bab6-48c4-922c-a051f933da58
Alt-id: <200906252203.08535.gian@grys.it>
-Content-type: text/plain
+Author: Gianluca Montecchi <gian@grys.it>
-Date: Thu, 25 Jun 2009 22:03:08 +0200
+Content-type: text/plain
-From: Gianluca Montecchi <gian@grys.it>
+Date: Thu, 25 Jun 2009 22:03:08 +0200
Alt-id: <200907062238.56930.gian@grys.it>
-Content-type: text/plain
+Author: Gianluca Montecchi <gian@grys.it>
-Date: Mon, 06 Jul 2009 22:38:56 +0200
+Content-type: text/plain
-From: Gianluca Montecchi <gian@grys.it>
+Date: Mon, 06 Jul 2009 22:38:56 +0200
In-reply-to: 55263144-9775-4b18-ab83-29d66ed91a53
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Thu, 04 Dec 2008 17:40:08 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Thu, 04 Dec 2008 17:40:08 +0000
+Author: wking
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Thu, 13 Nov 2008 17:27:17 +0000
-
-
-
-
-
-
-From=wking
+Content-type: text/plain
+Date: Thu, 13 Nov 2008 17:27:17 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Thu, 04 Dec 2008 13:44:33 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Thu, 04 Dec 2008 13:44:33 +0000
+Author: abentley
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Tue, 17 May 2005 13:42:52 +0000
-
-
-
-
-
-
-From=abentley
+Content-type: text/plain
+Date: Tue, 17 May 2005 13:42:52 +0000
+Author: W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
-Content-type=text/plain
+Date: Thu, 04 Dec 2008 13:46:32 +0000
-
-
-
-Date=Thu, 04 Dec 2008 13:46:32 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
-
-
-
-
-
-
-In-reply-to=9e33512e-e3cb-42ec-bc99-8e77587d0d3f
-
-
+In-reply-to: 9e33512e-e3cb-42ec-bc99-8e77587d0d3f
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Wed, 22 Jul 2009 19:07:28 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Wed, 22 Jul 2009 19:07:28 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Tue, 21 Jul 2009 19:52:25 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Tue, 21 Jul 2009 19:52:25 +0000
In-reply-to: 950ac308-f3e1-4956-885a-e79ce3025fd5
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Tue, 21 Jul 2009 19:53:02 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Tue, 21 Jul 2009 19:53:02 +0000
In-reply-to: 85a2d1ac-200a-4ae7-841f-9f4e87795dbf
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Tue, 21 Jul 2009 19:34:20 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Tue, 21 Jul 2009 19:34:20 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Tue, 21 Jul 2009 19:34:32 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Tue, 21 Jul 2009 19:34:32 +0000
In-reply-to: 85a2d1ac-200a-4ae7-841f-9f4e87795dbf
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Wed, 22 Jul 2009 18:54:06 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Wed, 22 Jul 2009 18:54:06 +0000
In-reply-to: 85a2d1ac-200a-4ae7-841f-9f4e87795dbf
+Author: wking
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Thu, 13 Nov 2008 15:58:18 +0000
-
-
-
-
-
-
-From=wking
+Content-type: text/plain
+Date: Thu, 13 Nov 2008 15:58:18 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Sat, 22 Nov 2008 18:53:20 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Sat, 22 Nov 2008 18:53:20 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Thu, 04 Dec 2008 17:05:50 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Thu, 04 Dec 2008 17:05:50 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Thu, 04 Dec 2008 15:42:07 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Thu, 04 Dec 2008 15:42:07 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Thu, 04 Dec 2008 13:44:33 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Thu, 04 Dec 2008 13:44:33 +0000
-Content-type: text/plain
+Author: abentley
-Date: Mon, 16 Jul 2007 15:23:47 +0000
+Content-type: text/plain
-From: abentley
+Date: Mon, 16 Jul 2007 15:23:47 +0000
In-reply-to: e173c09a-1b3e-4d8a-a86a-6b8c94a76247
-Content-type: text/plain
+Author: jelmer
-Date: Sun, 15 Jul 2007 13:34:52 +0000
+Content-type: text/plain
-From: jelmer
+Date: Sun, 15 Jul 2007 13:34:52 +0000
--- /dev/null
+Added libbe/upgrade.py to handle upgrading on-disk bugdirs.
+
+When upgrade.BUGDIR_DISK_VERSION changes, a series of Updater
+classes handle the upgrade. For example, if
+ BUGDIR_DISK_VERSIONS = ["v1", "v2", "v3"]
+and the on-disk version is "v1", you should have defined classes
+ class Upgrade_1_to_2 (Upgrader):
+ initial_version = "v1"
+ final_version = "v2"
+ def _upgrade():
+ ....
+ class Upgrade_2_to_3 (Upgrader):
+ initial_version = "v2"
+ final_version = "v3"
+ def _upgrade():
+ ....
+and added them to upgraders:
+ upgraders = [Upgrade_1_to_2, Upgrade_2_to_3]
+If the on-disk version is v2, then only Upgrade_2_to_3.upgrade() is
+run. If the on-disk version is v1, then Upgrade_1_to_2.upgrade() is
+run, followed by Upgrade_2_to_3.upgrade().
+
+You can optionally define shortcut upgrades (e.g. Upgrade_1_to_3) for
+efficiency or to avoid data loss.
+
+This upgrade occurs during BugDir.load(), which is called by
+BugDir.__init__(from_disk=True), before any processing of the on-disk
+data except for the access of .be/version to determine if an upgrade
+was necessary.
+
--- /dev/null
+Author: W. Trevor King <wking@drexel.edu>
+
+
+Content-type: text/plain
+
+
+Date: Mon, 31 Aug 2009 16:29:50 +0000
+
+
+In-reply-to: f1479ecf-4154-4cd4-bbd6-0ed6275b9f98
+
severity: minor
-status: open
+status: fixed
summary: Upgrade path for on-disk representation
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Fri, 24 Jul 2009 12:33:58 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Fri, 24 Jul 2009 12:33:58 +0000
In-reply-to: b17a561a-6100-490e-84eb-d1ae4b617940
-Content-type: text/plain
+Author: Martin F Krafft <madduck@debian.org>
-Date: Fri, 24 Jul 2009 12:09:02 +0000
+Content-type: text/plain
-From: Martin F Krafft <madduck@debian.org>
+Date: Fri, 24 Jul 2009 12:09:02 +0000
Alt-id: <20090714142942.GA5717@ukfsn.org>
-Content-type: text/plain
+Author: James Rowe <jnrowe@gmail.com>
-Date: Tue, 14 Jul 2009 15:29:42 +0100
+Content-type: text/plain
-From: James Rowe <jnrowe@gmail.com>
+Date: Tue, 14 Jul 2009 15:29:42 +0100
In-reply-to: ea01c122-e629-4d5c-afa7-b180f4a8748b
Alt-id: <20090714171725.GB10445@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Tue, 14 Jul 2009 13:17:25 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Tue, 14 Jul 2009 13:17:25 -0400
In-reply-to: 0c40c13a-3515-4b45-a8c3-142cceab9254
Alt-id: <87hbxdhtkp.fsf@benfinney.id.au>
-Content-type: text/plain
+Author: Ben Finney <bignose+hates-spam@benfinney.id.au>
-Date: Thu, 16 Jul 2009 19:21:10 +1000
+Content-type: text/plain
-From: Ben Finney <bignose+hates-spam@benfinney.id.au>
+Date: Thu, 16 Jul 2009 19:21:10 +1000
In-reply-to: cdf15bdd-d3fe-4251-9d0b-f1b687e9a26c
Alt-id: <4A5CCE76.9040106@aaronbentley.com>
-Content-type: text/plain
+Author: Aaron Bentley <aaron@aaronbentley.com>
-Date: Tue, 14 Jul 2009 14:29:10 -0400
+Content-type: text/plain
-From: Aaron Bentley <aaron@aaronbentley.com>
+Date: Tue, 14 Jul 2009 14:29:10 -0400
In-reply-to: ae4f8f1e-6f86-4f81-ba9f-4042deb2ee68
Alt-id: <20090714191145.GB10606@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Tue, 14 Jul 2009 15:11:45 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Tue, 14 Jul 2009 15:11:45 -0400
In-reply-to: 6e315abe-a080-4369-8729-4aea2dee8494
Alt-id: <20090714183404.GB26032@ukfsn.org>
-Content-type: text/plain
+Author: jnrowe@gmail.com
-Date: Tue, 14 Jul 2009 19:34:04 +0100
+Content-type: text/plain
-From: jnrowe@gmail.com
+Date: Tue, 14 Jul 2009 19:34:04 +0100
In-reply-to: 1f40efc1-6efc-4dd8-bdd2-97907e5aa624
Alt-id: <87ocrnjvat.fsf@benfinney.id.au>
-Content-type: text/plain
+Author: Ben Finney <bignose+hates-spam@benfinney.id.au>
-Date: Tue, 14 Jul 2009 22:36:26 +1000
+Content-type: text/plain
-From: Ben Finney <bignose+hates-spam@benfinney.id.au>
+Date: Tue, 14 Jul 2009 22:36:26 +1000
In-reply-to: cdf15bdd-d3fe-4251-9d0b-f1b687e9a26c
Alt-id: <m3ljmrfgot.fsf@pullcord.laptop.org>
-Content-type: text/plain
+Author: Chris Ball <cjb@laptop.org>
-Date: Tue, 14 Jul 2009 11:05:38 -0400
+Content-type: text/plain
-From: Chris Ball <cjb@laptop.org>
+Date: Tue, 14 Jul 2009 11:05:38 -0400
In-reply-to: ea01c122-e629-4d5c-afa7-b180f4a8748b
Alt-id: <20090718105008.GA31639@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Sat, 18 Jul 2009 06:50:08 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Sat, 18 Jul 2009 06:50:08 -0400
In-reply-to: c35835c0-8f9f-4090-ba92-1f616867e486
Alt-id: <m3k52bfgf0.fsf@pullcord.laptop.org>
-Content-type: text/plain
+Author: Chris Ball <cjb@laptop.org>
-Date: Tue, 14 Jul 2009 11:11:31 -0400
+Content-type: text/plain
-From: Chris Ball <cjb@laptop.org>
+Date: Tue, 14 Jul 2009 11:11:31 -0400
In-reply-to: ffbf5ac9-e2f5-47ab-9c3c-33989c81ad42
Alt-id: <20090714182034.GA10606@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Tue, 14 Jul 2009 14:20:34 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Tue, 14 Jul 2009 14:20:34 -0400
In-reply-to: 1f40efc1-6efc-4dd8-bdd2-97907e5aa624
Alt-id: <5c5e5c350907140827u218553e8rc5773325d43c2bf2@mail.gmail.com>
-Content-type: text/plain
+Author: Elena of Valhalla <elena.valhalla@gmail.com>
-Date: Tue, 14 Jul 2009 17:27:52 +0200
+Content-type: text/plain
-From: Elena of Valhalla <elena.valhalla@gmail.com>
+Date: Tue, 14 Jul 2009 17:27:52 +0200
In-reply-to: aad59898-8949-44fb-ad0b-2acea6eb2ef8
Alt-id: <200907172337.49779.gian@grys.it>
-Content-type: text/plain
+Author: Gianluca Montecchi <gian@grys.it>
-Date: Fri, 17 Jul 2009 23:37:49 +0200
+Content-type: text/plain
-From: Gianluca Montecchi <gian@grys.it>
+Date: Fri, 17 Jul 2009 23:37:49 +0200
In-reply-to: f925e56f-26f9-4620-82fb-a0f160f27921
Alt-id: <20090714110543.GB4855@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Tue, 14 Jul 2009 07:05:43 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Tue, 14 Jul 2009 07:05:43 -0400
Alt-id: <20090714133732.GB6160@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Tue, 14 Jul 2009 09:37:32 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Tue, 14 Jul 2009 09:37:32 -0400
In-reply-to: 744435b7-1521-4059-a55d-f0c403d7b4d8
Alt-id: <20090716103855.GA8579@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Thu, 16 Jul 2009 06:38:55 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Thu, 16 Jul 2009 06:38:55 -0400
In-reply-to: fdb615a4-168a-467b-8090-875c998455e5
Alt-id: <87d481ht1s.fsf@benfinney.id.au>
-Content-type: text/plain
+Author: Ben Finney <bignose+hates-spam@benfinney.id.au>
-Date: Thu, 16 Jul 2009 19:32:31 +1000
+Content-type: text/plain
-From: Ben Finney <bignose+hates-spam@benfinney.id.au>
+Date: Thu, 16 Jul 2009 19:32:31 +1000
In-reply-to: cdf15bdd-d3fe-4251-9d0b-f1b687e9a26c
Alt-id: <87k52bjoxe.fsf_-_@benfinney.id.au>
-Content-type: text/plain
+Author: Ben Finney <bignose+hates-spam@benfinney.id.au>
-Date: Wed, 15 Jul 2009 00:54:05 +1000
+Content-type: text/plain
-From: Ben Finney <bignose+hates-spam@benfinney.id.au>
+Date: Wed, 15 Jul 2009 00:54:05 +1000
In-reply-to: cdf15bdd-d3fe-4251-9d0b-f1b687e9a26c
-Content-type: text/html
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 20:05:00 +0000
+Content-type: text/html
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 20:05:00 +0000
In-reply-to: c454aa67-ca30-43e8-9be4-58cbddd01b63
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 20:03:27 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 20:03:27 +0000
In-reply-to: d83a5436-85e3-42c7-9a89-a6d50df9d279
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Fri, 19 Jun 2009 20:22:19 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Fri, 19 Jun 2009 20:22:19 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Thu, 04 Dec 2008 13:35:42 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Thu, 04 Dec 2008 13:35:42 +0000
+Author: abentley
-
-Content-type=text/restructured
-
-
-
-
-
-
-Date=Thu, 06 Apr 2006 16:54:57 +0000
-
-
-
-
-
-
-From=abentley
+Content-type: text/restructured
+Date: Thu, 06 Apr 2006 16:54:57 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Thu, 04 Dec 2008 17:29:30 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Thu, 04 Dec 2008 17:29:30 +0000
+Author: abentley
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Fri, 27 Jan 2006 14:30:26 +0000
-
-
-
-
-
-
-From=abentley
+Content-type: text/plain
+Date: Fri, 27 Jan 2006 14:30:26 +0000
-Content-type: text/plain
+Author: abentley
-Date: Thu, 24 Mar 2005 17:04:47 +0000
+Content-type: text/plain
-From: abentley
+Date: Thu, 24 Mar 2005 17:04:47 +0000
-Content-type: text/plain
+Author: abentley
-Date: Thu, 24 Mar 2005 13:05:13 +0000
+Content-type: text/plain
-From: abentley
+Date: Thu, 24 Mar 2005 13:05:13 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Mon, 24 Nov 2008 13:08:07 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Mon, 24 Nov 2008 13:08:07 +0000
+Author: abentley
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Wed, 21 Dec 2005 21:53:47 +0000
-
-
-
-
-
-
-From=abentley
+Content-type: text/plain
+Date: Wed, 21 Dec 2005 21:53:47 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 20:39:39 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 20:39:39 +0000
-Content-type: text/plain
+Author: abentley
-Date: Mon, 17 Apr 2006 20:59:15 +0000
+Content-type: text/plain
-From: abentley
+Date: Mon, 17 Apr 2006 20:59:15 +0000
In-reply-to: f87fd684-6af1-498d-98d5-f915bcee76a9
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Thu, 25 Jun 2009 12:39:26 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Thu, 25 Jun 2009 12:39:26 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 20:42:12 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 20:42:12 +0000
In-reply-to: ec133a4e-c9ff-4499-b469-cb0a2ca9a685
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 21:29:13 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 21:29:13 +0000
In-reply-to: f87fd684-6af1-498d-98d5-f915bcee76a9
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 20:40:54 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 20:40:54 +0000
In-reply-to: 401950a0-a5ff-46f3-afac-a9cfb300f94b
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 21:29:32 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 21:29:32 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Thu, 27 Nov 2008 14:26:18 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Thu, 27 Nov 2008 14:26:18 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Thu, 27 Nov 2008 13:43:47 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Thu, 27 Nov 2008 13:43:47 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Fri, 21 Nov 2008 18:41:47 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Fri, 21 Nov 2008 18:41:47 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Fri, 21 Nov 2008 19:12:42 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Fri, 21 Nov 2008 19:12:42 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Fri, 21 Nov 2008 19:01:19 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Fri, 21 Nov 2008 19:01:19 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 19:46:45 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 19:46:45 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 24 Nov 2008 13:10:38 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 24 Nov 2008 13:10:38 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Thu, 04 Dec 2008 18:05:38 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Thu, 04 Dec 2008 18:05:38 +0000
-Content-type: text/plain
+Author: abentley
-Date: Fri, 31 Mar 2006 22:15:09 +0000
+Content-type: text/plain
-From: abentley
+Date: Fri, 31 Mar 2006 22:15:09 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 18:40:43 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 18:40:43 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 21:12:00 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 21:12:00 +0000
In-reply-to: d81d0df9-e6d9-4fe8-8dbe-989ef2c81f00
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 19:43:21 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 19:43:21 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Tue, 25 Nov 2008 02:24:04 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Tue, 25 Nov 2008 02:24:04 +0000
+Author: W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
-Content-type=text/plain
+Date: Sat, 22 Nov 2008 21:43:29 +0000
-
-
-
-Date=Sat, 22 Nov 2008 21:43:29 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
-
-
-
-
-
-
-In-reply-to=0fd8ba95-d9ea-49b3-9f5a-b0eb723cdbe1
-
-
+In-reply-to: 0fd8ba95-d9ea-49b3-9f5a-b0eb723cdbe1
+Author: W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
-Content-type=text/plain
+Date: Sun, 23 Nov 2008 12:37:57 +0000
-
-
-
-Date=Sun, 23 Nov 2008 12:37:57 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
-
-
-
-
-
-
-In-reply-to=0fd8ba95-d9ea-49b3-9f5a-b0eb723cdbe1
-
-
+In-reply-to: 0fd8ba95-d9ea-49b3-9f5a-b0eb723cdbe1
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Mon, 24 Nov 2008 13:05:07 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Mon, 24 Nov 2008 13:05:07 +0000
+Author: abentley
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Mon, 10 Apr 2006 23:23:25 +0000
-
-
-
-
-
-
-From=abentley
+Content-type: text/plain
+Date: Mon, 10 Apr 2006 23:23:25 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Thu, 04 Dec 2008 17:05:49 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Thu, 04 Dec 2008 17:05:49 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Thu, 04 Dec 2008 15:42:07 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Thu, 04 Dec 2008 15:42:07 +0000
In-reply-to: 2628eeca-96c6-4933-8484-d55bb1dbf985
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Thu, 04 Dec 2008 17:07:25 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Thu, 04 Dec 2008 17:07:25 +0000
+Author: benf
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Mon, 21 Apr 2008 03:24:11 +0000
-
-
-
-
-
-
-From=benf
+Content-type: text/plain
+Date: Mon, 21 Apr 2008 03:24:11 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Thu, 04 Dec 2008 13:48:47 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Thu, 04 Dec 2008 13:48:47 +0000
+Author: j
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Mon, 14 Apr 2008 16:43:07 +0000
-
-
-
-
-
-
-From=j
+Content-type: text/plain
+Date: Mon, 14 Apr 2008 16:43:07 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Mon, 24 Nov 2008 13:23:43 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Mon, 24 Nov 2008 13:23:43 +0000
+Author: wking
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Thu, 13 Nov 2008 16:35:24 +0000
-
-
-
-
-
-
-From=wking
+Content-type: text/plain
+Date: Thu, 13 Nov 2008 16:35:24 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Wed, 19 Nov 2008 17:11:51 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Wed, 19 Nov 2008 17:11:51 +0000
+Author: wking
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Thu, 13 Nov 2008 16:38:36 +0000
-
-
-
-
-
-
-From=wking
+Content-type: text/plain
+Date: Thu, 13 Nov 2008 16:38:36 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 20:12:35 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 20:12:35 +0000
In-reply-to: 354dcfc6-5997-4ffe-b7a0-baa852213539
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 20:11:02 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 20:11:02 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 20:20:39 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 20:20:39 +0000
In-reply-to: f847c981-873e-41ae-b5ce-83dfe60b9afe
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 20:14:26 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 20:14:26 +0000
In-reply-to: 22348320-40d3-422c-bdf0-0f6a6bde3fab
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Sat, 22 Nov 2008 21:43:29 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Sat, 22 Nov 2008 21:43:29 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Sun, 23 Nov 2008 12:37:57 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Sun, 23 Nov 2008 12:37:57 +0000
+Author: W. Trevor King <wking@drexel.edu>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Tue, 25 Nov 2008 02:24:05 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@drexel.edu>
+Content-type: text/plain
+Date: Tue, 25 Nov 2008 02:24:05 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Mon, 22 Jun 2009 19:48:44 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Mon, 22 Jun 2009 19:48:44 +0000
-Content-type: text/plain
+Author: wking
-Date: Sat, 15 Nov 2008 23:56:51 +0000
+Content-type: text/plain
-From: wking
+Date: Sat, 15 Nov 2008 23:56:51 +0000
Alt-id: <m3eisxtgfx.fsf@pullcord.laptop.org>
-Content-type: text/plain
+Author: Chris Ball <cjb@laptop.org>
-Date: Fri, 03 Jul 2009 20:55:30 -0400
+Content-type: text/plain
-From: Chris Ball <cjb@laptop.org>
+Date: Fri, 03 Jul 2009 20:55:30 -0400
In-reply-to: 2496ccca-130b-4459-bfae-9d9ef0138177
Alt-id: <272FECFE-D16B-47B7-B39A-E2C8A718CCC5@stevelosh.com>
-Content-type: text/plain
+Author: Steve Losh <steve@stevelosh.com>
-Date: Sat, 07 Feb 2009 16:30:33 -0500
+Content-type: text/plain
-From: Steve Losh <steve@stevelosh.com>
+Date: Sat, 07 Feb 2009 16:30:33 -0500
Alt-id: <f6f643a20902071531y6aa3d7a6k7c5a4bd4aa5a04f6@mail.gmail.com>
-Content-type: text/plain
+Author: Matthew Wilson <matt@tplus1.com>
-Date: Sat, 07 Feb 2009 18:31:04 -0500
+Content-type: text/plain
-From: Matthew Wilson <matt@tplus1.com>
+Date: Sat, 07 Feb 2009 18:31:04 -0500
In-reply-to: 21c90231-d7f2-49bb-97d9-99e16459d799
Alt-id: <D765386C-4D43-4AE0-83E3-986A1CB4008C@stevelosh.com>
-Content-type: text/plain
+Author: Steve Losh <steve@stevelosh.com>
-Date: Sat, 07 Feb 2009 17:48:06 -0500
+Content-type: text/plain
-From: Steve Losh <steve@stevelosh.com>
+Date: Sat, 07 Feb 2009 17:48:06 -0500
In-reply-to: 42d57a41-219f-46db-9fda-21b42351da63
Alt-id: <4701D71B-A14D-4C63-ABCC-E7E5FFE4E4BA@stevelosh.com>
-Content-type: text/plain
+Author: Steve Losh <steve@stevelosh.com>
-Date: Fri, 03 Jul 2009 20:34:51 -0400
+Content-type: text/plain
-From: Steve Losh <steve@stevelosh.com>
+Date: Fri, 03 Jul 2009 20:34:51 -0400
In-reply-to: 16357f68-19c0-4bf9-8220-b88b52b3456d
Alt-id: <m3zlgxyjo5.fsf@pullcord.laptop.org>
-Content-type: text/plain
+Author: Chris Ball <cjb@laptop.org>
-Date: Sat, 07 Feb 2009 17:19:22 -0500
+Content-type: text/plain
-From: Chris Ball <cjb@laptop.org>
+Date: Sat, 07 Feb 2009 17:19:22 -0500
In-reply-to: 16357f68-19c0-4bf9-8220-b88b52b3456d
Alt-id: <m31vp82yyj.fsf@pullcord.laptop.org>
-Content-type: text/plain
+Author: Chris Ball <cjb@laptop.org>
-Date: Thu, 25 Jun 2009 10:02:44 -0400
+Content-type: text/plain
-From: Chris Ball <cjb@laptop.org>
+Date: Thu, 25 Jun 2009 10:02:44 -0400
In-reply-to: 16357f68-19c0-4bf9-8220-b88b52b3456d
Alt-id: <26FBD153-39C5-4641-AF5E-749731964086@stevelosh.com>
-Content-type: text/plain
+Author: Steve Losh <steve@stevelosh.com>
-Date: Thu, 25 Jun 2009 10:23:04 -0400
+Content-type: text/plain
-From: Steve Losh <steve@stevelosh.com>
+Date: Thu, 25 Jun 2009 10:23:04 -0400
In-reply-to: 5e339bac-f4f3-407b-974a-b88795d3573b
Alt-id: <20090721135907.GB4469@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Tue, 21 Jul 2009 09:59:07 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Tue, 21 Jul 2009 09:59:07 -0400
In-reply-to: 21c90231-d7f2-49bb-97d9-99e16459d799
Alt-id: <20090625154734.GA19441@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Thu, 25 Jun 2009 11:47:34 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Thu, 25 Jun 2009 11:47:34 -0400
In-reply-to: 16357f68-19c0-4bf9-8220-b88b52b3456d
+Author: W. Trevor King <wking@example.com>
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Wed, 19 Nov 2008 01:12:37 +0000
-
-
-
-
-
-
-From=W. Trevor King <wking@example.com>
+Content-type: text/plain
+Date: Wed, 19 Nov 2008 01:12:37 +0000
+Author: wking
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Mon, 17 Nov 2008 15:03:58 +0000
-
-
-
-
-
-
-From=wking
+Content-type: text/plain
+Date: Mon, 17 Nov 2008 15:03:58 +0000
-Content-type: text/plain
+Author: Gianluca Montecchi <gian@grys.it>
-Date: Mon, 03 Aug 2009 20:33:30 +0000
+Content-type: text/plain
-From: Gianluca Montecchi <gian@grys.it>
+Date: Mon, 03 Aug 2009 20:33:30 +0000
Alt-id: <20090718131220.GA31832@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Sat, 18 Jul 2009 09:12:20 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Sat, 18 Jul 2009 09:12:20 -0400
In-reply-to: f1cde826-0506-4b4a-92ab-8499e953fa49
Alt-id: <20090719130649.GA4164@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Sun, 19 Jul 2009 09:06:49 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Sun, 19 Jul 2009 09:06:49 -0400
In-reply-to: 7b904395-86e9-4eb1-8534-69cec63801d4
Alt-id: <20090718220551.GB32230@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Sat, 18 Jul 2009 18:05:51 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Sat, 18 Jul 2009 18:05:51 -0400
In-reply-to: 09f950d4-9366-4e7b-98b3-9057999f8f38
Alt-id: <20090719130153.GA4036@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Sun, 19 Jul 2009 09:01:53 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Sun, 19 Jul 2009 09:01:53 -0400
In-reply-to: cfd7cbc7-27ad-4618-8530-cb4d7323514a
Alt-id: <87fxctbnce.fsf@benfinney.id.au>
-Content-type: text/plain
+Author: Ben Finney <bignose+hates-spam@benfinney.id.au>
-Date: Sun, 19 Jul 2009 09:09:05 +1000
+Content-type: text/plain
-From: Ben Finney <bignose+hates-spam@benfinney.id.au>
+Date: Sun, 19 Jul 2009 09:09:05 +1000
In-reply-to: f1cde826-0506-4b4a-92ab-8499e953fa49
Alt-id: <20090716133930.GC12213@mjolnir.home.net>
-Content-type: text/plain
+Author: '"W. Trevor King" <wking@drexel.edu>'
-Date: Thu, 16 Jul 2009 09:39:30 -0400
+Content-type: text/plain
-From: '"W. Trevor King" <wking@drexel.edu>'
+Date: Thu, 16 Jul 2009 09:39:30 -0400
Alt-id: <m3fxct5vl6.fsf@pullcord.laptop.org>
-Content-type: text/plain
+Author: Chris Ball <cjb@laptop.org>
-Date: Sat, 18 Jul 2009 21:07:33 -0400
+Content-type: text/plain
-From: Chris Ball <cjb@laptop.org>
+Date: Sat, 18 Jul 2009 21:07:33 -0400
In-reply-to: f1cde826-0506-4b4a-92ab-8499e953fa49
+Author: abentley
+Content-type: text/plain
-Content-type=text/plain
+Date: Thu, 14 Sep 2006 18:05:48 +0000
-
-
-
-Date=Thu, 14 Sep 2006 18:05:48 +0000
-
-
-
-
-
-
-From=abentley
-
-
-
-
-
-
-In-reply-to=e5decfc6-050b-4283-8776-977bf85b2c99
-
-
+In-reply-to: e5decfc6-050b-4283-8776-977bf85b2c99
+Author: abentley
-
-Content-type=text/plain
-
-
-
-
-
-
-Date=Thu, 14 Sep 2006 18:03:41 +0000
-
-
-
-
-
-
-From=abentley
+Content-type: text/plain
+Date: Thu, 14 Sep 2006 18:03:41 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Sun, 12 Jul 2009 11:34:22 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Sun, 12 Jul 2009 11:34:22 +0000
In-reply-to: faa686bf-c0eb-48bf-8a0b-d9a2e02bd132
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Sun, 12 Jul 2009 11:42:16 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Sun, 12 Jul 2009 11:42:16 +0000
In-reply-to: faa686bf-c0eb-48bf-8a0b-d9a2e02bd132
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Sun, 12 Jul 2009 11:46:57 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Sun, 12 Jul 2009 11:46:57 +0000
In-reply-to: 520a9829-8d90-43ce-be64-868b8321e5b0
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Sun, 12 Jul 2009 11:37:55 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Sun, 12 Jul 2009 11:37:55 +0000
In-reply-to: 07fc448f-c42e-4846-929a-8924de485766
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Sun, 12 Jul 2009 11:31:13 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Sun, 12 Jul 2009 11:31:13 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Thu, 04 Dec 2008 17:20:20 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Thu, 04 Dec 2008 17:20:20 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Tue, 25 Nov 2008 19:41:02 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Tue, 25 Nov 2008 19:41:02 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Tue, 25 Nov 2008 02:36:16 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Tue, 25 Nov 2008 02:36:16 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Tue, 25 Nov 2008 03:02:59 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Tue, 25 Nov 2008 03:02:59 +0000
-Content-type: text/plain
+Author: W. Trevor King <wking@drexel.edu>
-Date: Sat, 11 Jul 2009 18:28:57 +0000
+Content-type: text/plain
-From: W. Trevor King <wking@drexel.edu>
+Date: Sat, 11 Jul 2009 18:28:57 +0000
-Bugs Everywhere Tree 1 0
+Bugs Everywhere Directory v2
import unittest
import doctest
+import bug
+import encoding
from properties import Property, doc_property, local_property, \
defaulting_property, checked_property, fn_checked_property, \
cached_property, primed_property, change_hook_property, \
settings_property
-import settings_object
import mapfile
-import bug
import rcs
-import encoding
+import settings_object
+import upgrade
import utility
-
class NoBugDir(Exception):
def __init__(self, path):
msg = "The directory \"%s\" has no bug directory." % path
Exception.__init__(self, msg)
-TREE_VERSION_STRING = "Bugs Everywhere Tree 1 0\n"
-
-
class BugDir (list, settings_object.SavedSettingsObject):
"""
Sink to existing root
if path == None:
path = self.get_path("version")
- tree_version = RCS.get_file_contents(path)
- return tree_version
+ version = RCS.get_file_contents(path).rstrip("\n")
+ return version
def set_version(self):
"""
raise DiskAccessRequired("set version")
self.rcs.mkdir(self.get_path())
self.rcs.set_file_contents(self.get_path("version"),
- TREE_VERSION_STRING)
+ upgrade.BUGDIR_DISK_VERSION+"\n")
# methods controlling disk access
Reqires disk access
"""
version = self.get_version(use_none_rcs=True)
- if version != TREE_VERSION_STRING:
- raise NotImplementedError, \
- "BugDir cannot handle version '%s' yet." % version
+ if version != upgrade.BUGDIR_DISK_VERSION:
+ upgrade.upgrade(self.root, version)
else:
if not os.path.exists(self.get_path()):
raise NoBugDir(self.get_path())
if self.sync_with_disk == False:
raise DiskAccessRequired("load settings")
self.settings = mapfile.map_load(self.rcs, self.get_path("values"))
- # hack to deal with old BE comments:
- if "From" in self.settings:
- self.settings["Author"] = self.settings.pop("From")
self._setup_saved_settings()
def save_settings(self):
--- /dev/null
+# Copyright (C) 2009 W. Trevor King <wking@drexel.edu>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+"""
+Handle conversion between the various on-disk images.
+"""
+
+import os, os.path
+import sys
+import doctest
+
+import encoding
+import mapfile
+import rcs
+
+# a list of all past versions
+BUGDIR_DISK_VERSIONS = ["Bugs Everywhere Tree 1 0",
+ "Bugs Everywhere Directory v2"]
+
+# the current version
+BUGDIR_DISK_VERSION = BUGDIR_DISK_VERSIONS[-1]
+
+class Upgrader (object):
+ "Class for converting "
+ initial_version = None
+ final_version = None
+ def __init__(self, root):
+ self.root = root
+ # use the "None" RCS to ensure proper encoding/decoding and
+ # simplify path construction.
+ self.rcs = rcs.rcs_by_name("None")
+ self.rcs.root(self.root)
+ self.rcs.encoding = encoding.get_encoding()
+
+ def get_path(self, *args):
+ """
+ Return a path relative to .root.
+ """
+ dir = os.path.join(self.root, ".be")
+ if len(args) == 0:
+ return dir
+ assert args[0] in ["version", "settings", "bugs"], str(args)
+ return os.path.join(dir, *args)
+
+ def check_initial_version(self):
+ path = self.get_path("version")
+ version = self.rcs.get_file_contents(path).rstrip("\n")
+ assert version == self.initial_version, version
+
+ def set_version(self):
+ path = self.get_path("version")
+ self.rcs.set_file_contents(path, self.final_version+"\n")
+
+ def upgrade(self):
+ print >> sys.stderr, "upgrading bugdir from '%s' to '%s'" \
+ % (self.initial_version, self.final_version)
+ self.check_initial_version()
+ self.set_version()
+ self._upgrade()
+
+ def _upgrade(self):
+ raise NotImplementedError
+
+class Upgrade_1_0_to_2 (Upgrader):
+ initial_version = "Bugs Everywhere Tree 1 0"
+ final_version = "Bugs Everywhere Directory v2"
+ def _upgrade(self):
+ for bug_uuid in os.listdir(self.get_path("bugs")):
+ c_path = ["bugs", bug_uuid, "comments"]
+ if not os.path.exists(self.get_path(*c_path)):
+ continue # no comments for this bug
+ for comment_uuid in os.listdir(self.get_path(*c_path)):
+ path_list = c_path + [comment_uuid, "values"]
+ path = self.get_path(*path_list)
+ settings = mapfile.map_load(self.rcs, path)
+ if "From" in settings:
+ settings["Author"] = settings.pop("From")
+ mapfile.map_save(self.rcs, path, settings)
+
+upgraders = [Upgrade_1_0_to_2]
+upgrade_classes = {}
+for upgrader in upgraders:
+ upgrade_classes[(upgrader.initial_version,upgrader.final_version)]=upgrader
+
+def upgrade(path, current_version,
+ target_version=BUGDIR_DISK_VERSION):
+ """
+ Call the appropriate upgrade function to convert current_version
+ to target_version. If a direct conversion function does not exist,
+ use consecutive conversion functions.
+ """
+ if current_version not in BUGDIR_DISK_VERSIONS:
+ raise NotImplementedError, \
+ "Cannot handle version '%s' yet." % version
+ if target_version not in BUGDIR_DISK_VERSIONS:
+ raise NotImplementedError, \
+ "Cannot handle version '%s' yet." % version
+
+ if (current_version, target_version) in upgrade_classes:
+ # direct conversion
+ upgrade_class = upgrade_classes[(current_version, target_version)]
+ u = upgrade_class(path)
+ u.upgrade()
+ else:
+ # consecutive single-step conversion
+ i = BUGDIR_DISK_VERSIONS.index(current_version)
+ while True:
+ version_a = BUGDIR_DISK_VERSIONS[i]
+ version_b = BUGDIR_DISK_VERSIONS[i+1]
+ try:
+ upgrade_class = upgrade_classes[(version_a, version_b)]
+ except KeyError:
+ raise NotImplementedError, \
+ "Cannot convert version '%s' to '%s' yet." \
+ % (version_a, version_b)
+ u = upgrade_class(path)
+ u.upgrade()
+ if version_b == target_version:
+ break
+ i += 1
+
+suite = doctest.DocTestSuite()