debian-diaspora-notes17 Nov 2012
Really good tutorial : http://www.shakthimaan.com/downloads/glv/quilt-tutorial/quilt-doc.pdf
To know which patch you are on :
To move down the series ( to go to older patch)
To move up the series ( to go to a newer patch)
The normal state ( code is untouched , all changes in patches )
$ quilt top
No patches applied
Workflow for patching source with quilt.
Assuming we are in a git repo setup for a git-buildpackage ,
To create a new patch ( to edit a file unrelated to older patch ) :
quilt new that_failing_test.patch
Then let quilt know which files are to be tracked in this patch :
quilt add spec/some_spec.rb
Now go ahead and edit the file spec/some_spec.rb
Run the test runner to verify your modifications fixed the tests.
/usr/bin/ruby -I/usr/lib/ruby/vendor_ruby /usr/lib/ruby/vendor_ruby/gem2deb/test_runner.rb
/usr/bin/ruby1.8 -I/usr/lib/ruby/vendor_ruby /usr/lib/ruby/vendor_ruby/gem2deb/test_runner.rb
Once done , update the patch file by
This will update the patch file in patches folder, reflecting the changes you newly edited.
Unapply all patches, so that our source directory is clean. Commit the patches (IMPORTANT: Just the patches and the series file)
When it makes more sense to add a change to an older patch we can make quilt to add changes to that old patch instead of creating a new patch.
Navigate to the required patch using
quilt pop and
You might want to do a
quilt pop -a -f to force unapply all the
Verify if you are at the required patch by
quilt top.When you are
sure about the patch , edit the source code files.When done , update
the patch using
Commit the modified patch file to the git repo and don’t forget to
git checkout the source code file you patched.
Useful bash aliases
For gem2deb test-runner :
alias tr='/usr/bin/ruby -I/usr/lib/ruby/vendor_ruby /usr/lib/ruby/vendor_ruby/gem2deb/test_runner.rb'
alias 18tr='/usr/bin/ruby1.8 -I/usr/lib/ruby/vendor_ruby /usr/lib/ruby/vendor_ruby/gem2deb/test_runner.rb'