Useful and some must-have options for quilt

If you use quilt to manage your patches, particularly in Debian packages, you may be interested in reading this. If you just want to try it, here’s my ~/.quiltrc:

  QUILT_PATCH_OPTS="--unified-reject-files"
  QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index"
  QUILT_DIFF_ARGS="-p ab --no-timestamps --no-index --color=auto"

  QUILT_PATCHES="debian/patches"
  QUILT_COLORS="diff_hdr=1;32:diff_add=1;34:diff_rem=1;31:diff_hunk=1;33:diff_ctx=35:diff_cctx=33"

Of these, I would recommend everybody to use --no-timestamps, both in diff, but more importantly in refresh. It omits timestamps in the resulting diff, which helps when doing debdiff and else. And -p ab which makes diff headers read --- a/foo and +++ b/foo instead of using the directory name, which for debian packages always changes since it contains the version. I find the other one, --no-index, also useful, but that’s probably a matter of taste; it omits the SVN-like “Index” header.

--color=auto should probably also be there; it’s just like in ls, it colors diff output if stdout is a terminal. If you don’t like the default quilt colors, you may want to try the QUILT_COLORS option above. Or just adjust it to your needs; figuring out the name of each color item took a bit of digging, so you may find it useful even if you don’t like my colors.

Finally, I’ve found that setting QUILT_PATCHES to debian/patches is useful to have quilt work even on a clean tree where there is no patches symlink in the toplevel directory. --unified-reject-files produces reject files in unified format, which I find more readable.

I hope somebody finds some of this useful. :-)

Update (2007-09-06): Add bit about -p ab.