Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

This plugin adds an --xml option to log and provides an xml version of some builtin commands that generate XML output. Also it provides a xmlrpc service.

Supported commands

  • xmllog and log --xml
  • xmlstatus
  • xmlannotate
  • xmlmissing
  • xmlinfo
  • xmlplugins
  • xmlversion
  • xmlls
  • start-xmlrpc
  • this starts the xmlrpc service, that provides the following functions:
  • run_bzr: allow to execute any bzr command
  • run_bzr_xml: similar to run_bzr, but report errors in xml format
  • search: provides integration with bzr-search (if it's available)
  • stop-xmlrpc


Latest release - 0.8.7


bzr branch lp:bzr-xmloutput

Experimental branch with a threaded xmlrpc service:

bzr branch lp:~verterok/bzr-xmloutput/threads

How to install

There are two main options to install Bazaar plugins, from source or directly from the branch.

For further instructions visit:

For windows users using bzr standalone installed (bzr.exe), you should use the bzr-xmloutput-setup-x-x-x.exe installer.

If you are installing bzr-xmloutput from the source tarball, the defaut install location is bzrlib/plugins/xmloutput. To change this look the available options running: python install --help

Differences with builtins commands

xmlls: when the --ignored flag is used, it includes the ignore pattern


  • tests for xmlplugins, xmlmissing and xmlls
  • tags?
  • testament?


See [[XMLOutput/SprintNotes]]


  • Martin Albisetti
  • Vincent Ladeuil
  • Adrian Wilkins
  • Aaron Bentley
  • Renato Silva

XML formats

xmllog or log --xml

logs: contains <log> entries

log: represents a commit which can contain: revno, revisionid, committer, branch-nick, timestamp, message, merge, affected-files.

merge: contains <log> entries.

affected-files: can contain any of the elements present in <status>

Example output:

    <committer> Patch Queue Manager &lt;;</committer>
    <timestamp>Fri 2007-09-28 05:14:35 +0100</timestamp>
        <message><![CDATA[(robertc) Add bzrlib.errors.!InternalBzrError. (Robert Collins)]]></message>


status: it has one attribute: workingtree_root, which is the path to the workingtree root. It can contain: modified, unknown, renamed, kind-changed, removed, conflicts, added.

<modified>, <unknown>, <renamed>, <kind-changed>, <removed>, <conflicts>, <added>: contains directory and/or file elements.

file: contains the relative path to the file, and can contain the following attributes: oldpath, oldkind and newkind, fid.

directory contains the relative path to the directory, and can contain the following attributes: oldpath, oldkind and newkind, suffix.

Example output:

<status workingtree_root="/Users/guillermo/Projects/BazaarEclipse/bzr-eclipse/trunk/">
                <file fid="commandlineclient.ja-20070416055005-sc8qpmryqhgx5f65-24">


missing: can contain: <last_location>, <extra_revisions> and <missing_revisions>.

extra_revisions and <missing_revision>: contains a <logs> element.

Example output:

    <extra_revisions size="1">
                                        Guillermo Gonzalez &lt;;
                            <timestamp>Fri 2007-12-21 19:34:45 -0300</timestamp>
                    <message>* merge with quickdiff branch</message>


annotation It has two attributes: workingtree_root, which is the path to the workingtree root, and file, which is the file being annotated.

entry Each represents a line. It has revno, author and date as attributes, and contains the text as a value.

Example output:

<annotation workingtree-root="/home/beuno/test_project/" file="test_file">
        <entry revno="1" author="" date="20080303">This is a test file.</entry>
    <entry revno="6" author="" date="20070404"></entry>
        <entry revno="3" author="" date="20080303">It has multiple lines...</entry>
    <entry revno="3" author="" date="20080222">...just as an example :)</entry>


info is the container for the information provided

layout displays the current layout

formats contains the formats the current branch has, <format> contains the name of the storage format

location can contain <shared_repository>, <repository_branch> and/or <branch_root>. These represent paths or URLs.

related_branches contains <push_branch> and <parent_branch>. These represent paths or URLs.

Example output:

        <layout>Repository tree</layout>


list to level tag, contains one or more <item> tags

item represente a file in the tree

id the file id

kind one of: file, directory or symlink

path the path to the file

status one of: none, versioned, unversioned, renamed, unknown, conflicts, pending merge, ignored, created, deleted, kind changed, modified, unchanged, exe bit changed.

pattern the ignored pattern, only if --ignored is spaecified

Example output:



plugins top level tag, contains one or more <plugin> tags

plugin represent one plugin, contains name, version, path, doc

name the name of the plugin

version the version (if it's specified in the plugin)

path the path to the plugin root

doc the __doc__ of the plugin file

Example output:

        <doc>This plugin provides xml output for status, log, annotate, missing, info, version and plugins adding a --xml option to each</doc>


**version8* top level tag, contains <bazaar> and <python> tags.

System Message: WARNING/2 (<string>, line 313); backlink

Inline strong start-string without end-string.

bazaar bzr version info, contains <version>, <bzrlib>, <configuration>, <log_file> and <copyright> tags

python python version info, contains <executable>, <version> and <standard_library>

version version number

bzrlib path of bzrlib currently used

configuration path of the configuration root

log_file path of the .bzr.log file

copyright the bzr copyright

executable python executable

standard_library path of the python standard library used

Example output:

        <copyright>Copyright 2005, 2006, 2007, 2008, 2009 Canonical Ltd. comes with ABSOLUTELY NO WARRANTY.  bzr is free software, andyou may use, modify and redistribute it under the terms of the GNUGeneral Public License version 2 or later.</copyright>