command_list = {
    'branch': ('branch', 'Stack (branch) commands', 'Branch operations: switch, list, create, rename, delete, ...'),
    'clean': ('clean', 'Stack (branch) commands', 'Delete the empty patches in the series'),
    'clone': ('clone', 'Repository commands', 'Make a local clone of a remote repository'),
    'commit': ('commit', 'Stack (branch) commands', 'Permanently store the applied patches into the stack base'),
    'delete': ('delete', 'Patch commands', 'Delete patches'),
    'diff': ('diff', 'Index/worktree commands', 'Show the tree diff'),
    'edit': ('edit', 'Patch commands', 'edit a patch description or diff'),
    'export': ('export', 'Patch commands', 'Export patches to a directory'),
    'files': ('files', 'Patch commands', 'Show the files modified by a patch (or the current patch)'),
    'float': ('float', 'Stack (branch) commands', 'Push patches to the top, even if applied'),
    'fold': ('fold', 'Patch commands', 'Integrate a GNU diff patch into the current patch'),
    'goto': ('goto', 'Stack (branch) commands', 'Push or pop patches to the given one'),
    'hide': ('hide', 'Stack (branch) commands', 'Hide a patch in the series'),
    'id': ('id', 'Repository commands', 'Print the git hash value of a StGit reference'),
    'import': ('imprt', 'Patch commands', 'Import a GNU diff file as a new patch'),
    'init': ('init', 'Stack (branch) commands', 'Initialise the current branch for use with StGIT'),
    'log': ('log', 'Stack (branch) commands', 'Display the patch changelog'),
    'mail': ('mail', 'Patch commands', 'Send a patch or series of patches by e-mail'),
    'new': ('new', 'Patch commands', 'Create a new, empty patch'),
    'next': ('next', 'Stack (branch) commands', 'Print the name of the next patch'),
    'patches': ('patches', 'Stack (branch) commands', 'Show the applied patches modifying a file'),
    'pick': ('pick', 'Patch commands', 'Import a patch from a different branch or a commit object'),
    'pop': ('pop', 'Stack (branch) commands', 'Pop one or more patches from the stack'),
    'prev': ('prev', 'Stack (branch) commands', 'Print the name of the previous patch'),
    'publish': ('publish', 'Stack (branch) commands', 'Push the stack changes to a merge-friendly branch'),
    'pull': ('pull', 'Stack (branch) commands', 'Pull changes from a remote repository'),
    'push': ('push', 'Stack (branch) commands', 'Push one or more patches onto the stack'),
    'rebase': ('rebase', 'Stack (branch) commands', 'Move the stack base to another point in history'),
    'redo': ('redo', 'Stack (branch) commands', 'Undo the last undo operation'),
    'refresh': ('refresh', 'Patch commands', 'Generate a new commit for the current patch'),
    'rename': ('rename', 'Patch commands', 'Rename a patch'),
    'repair': ('repair', 'Stack (branch) commands', 'Fix StGit metadata if branch was modified with git commands'),
    'reset': ('reset', 'Stack (branch) commands', 'Reset the patch stack to an earlier state'),
    'series': ('series', 'Stack (branch) commands', 'Print the patch series'),
    'show': ('show', 'Patch commands', 'Show the commit corresponding to a patch'),
    'sink': ('sink', 'Stack (branch) commands', 'Send patches deeper down the stack'),
    'squash': ('squash', 'Stack (branch) commands', 'Squash two or more patches into one'),
    'status': ('status', 'Index/worktree commands', 'Show the tree status'),
    'sync': ('sync', 'Patch commands', 'Synchronise patches with a branch or a series'),
    'top': ('top', 'Stack (branch) commands', 'Print the name of the top patch'),
    'uncommit': ('uncommit', 'Stack (branch) commands', 'Turn regular git commits into StGit patches'),
    'undo': ('undo', 'Stack (branch) commands', 'Undo the last operation'),
    'unhide': ('unhide', 'Stack (branch) commands', 'Unhide a hidden patch'),
    }
