Commands have been refactored to subclass bzrlib.commands.Command. CommandController uses the command hooks system in Bazaar to register commands. Using bzrlib.commands.Command makes it possible to create Commandant commands with rich command-line argument and option semantics. The controller uses Bazaar's machinery to run commands from command-line arguments to enforce proper command-line argument handling. Help topics have been refactored to work with the new system. Information about command arguments and options is not currently rendered in help output. The help system should eventually be refactored to use functionality provided by bzrlib.help.
Command.hook support is relatively new in bzrlib. As a result, at this time, this merge requires bzrlib from lp:bzr for Commandant and the test suite to work properly.