~ourdelta-core/ourdelta/ourdelta-5.0.90

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
=== OurDelta and Quilt ===

Please use Quilt to manage the patches and any modifications, this keeps things sane.
If you use Ubuntu, just aptitude install quilt

Example (working on mysql 5.0.67)

cd ~
bzr branch lp:ourdelta ourdelta-mybranch
tar zxpf mysql-5.0.67.tar.gz
export QUILT_PATCHES=~/ourdelta-mybranch/mysql/5.0/
cd mysql-5.0.67
quilt setup ~/ourdelta-mybranch/mysql/5.0/patches-build-ourdelta

Now you can 'quilt push' to add one patch at a time
Edit source tree as you like
Use 'quilt refresh' to create a new diff for the patch at the top of the patch stack (diffed from the current tree)
Then when you do 'bzr diff' in the bzr tree, you will see how the patch has changed. This works well:
bzr diff --diff-options=-y |less
Verify...

quilt push/pop -a applies or de-applies all patches rather than one at a time.

You can also add or import new patches into the patch list, just pick an appropriate spot.

Of course, always do build and testsuite runs; but first commit; yes, really!
You can always do additional commits (or rollback) but it's cleaner as a build can mess with other files too.
Also look at using quilt snapshot


Push your tree onto lp (bzr push lp:~yourname/ourdelta/ourdelta-yourname-mybranch)
When ready, propose for merging into whereever you branched from

Please do a separate commit for separate patches, so commits only affect a single patch.
You can of course use multiple commits for a single patch, regard bzr commit just as a periodic autosave!

References:
 - man quilt
 - http://www.suse.de/~agruen/quilt.pdf provides a good overview of how Quilt works.