Clone wiki

qimprovements / qlist


The qlist command lists the patches in your patch queue in a more human-readable way than qseries and its siblings.

qseries' default view lists only patch names. It does not distinguish between applied and unapplied patches. With the verbose switch, it does, but it also puts an index number before each patch, and I've no idea what the extension proposes I do with those numbers.

qapplied lists the patches from oldest to latest—i.e., in queue order. Maybe this is just me, but the commands qpush and qpop evoke in my mind a stack, not a queue, which means the patches should be from latest to oldest—i.e., in stack order. Either way, it would be nice if the presentation indicated which order the patches were in.

qlist solves all of these problems:

  • It clearly distinguishes applied patches from unapplied patches, by putting them under separate headings.
  • It lists applied patches in stack order.
  • It lists other tags applied to a patch—most importantly, qtip and qbase, which make clear the order in which qlist is listing the patches.

When the output is a terminal, the output is side-by-side:

% hg qlist
applied:                                      unapplied:
fix-xcode-build-setting-integration qtip tip  packagemaker-fixage (next)
finish-svn-to-hg                              growlpathway-strikeoneway
fix-spaces-in-SVNRevision-script qbase        

Otherwise, the output is in a parseable list format:

% hg qlist | cat
- fix-xcode-build-setting-integration qtip tip
- finish-svn-to-hg
- fix-spaces-in-SVNRevision-script qbase

- packagemaker-fixage (next)
- growlpathway-strikeoneway

The “ (next)” suffix does not appear when there are fewer than two unapplied patches.