Rendering of reStructured text is not possible, please install Docutils.
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.
.. contents::
------------------
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
--------
Download
--------
Latest release - 0.8.7
- `Source Code Tarball <http://launchpad.net/bzr-xmloutput/trunk/0.8.7/+download/bzr-xmloutput-0.8.7.final.0.tar.gz>`_
Branch:
::
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: http://bazaar-vcs.org/UsingPlugins.
For windows users using bzr standalone installed (bzr.exe), you should use the
bzr-xmloutput-setup-x-x-x.exe installer.
Notice
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 setup.py install --help
----------------------------------
Differences with builtins commands
----------------------------------
xmlls: when the --ignored flag is used, it includes the ignore pattern
----
TODO
----
- tests for xmlplugins, xmlmissing and xmlls
- tags?
- testament?
--------
Roadmap
--------
See [[XMLOutput/SprintNotes]]
-------------
Contributors
-------------
- 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:
::
<logs>
<log>
<revno>2872</revno>
<committer>Canonical.com Patch Queue Manager <fake@no-mail.net></committer>
<branch-nick>+trunk</branch-nick>
<timestamp>Fri 2007-09-28 05:14:35 +0100</timestamp>
<message><![CDATA[(robertc) Add bzrlib.errors.!InternalBzrError. (Robert Collins)]]></message>
<affected-files>
<modified>
<file>NEWS</file>
<file>bzrlib/errors.py</file>
</modified>
</affected-files>
<log>
<logs>
xmlstatus
---------
**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/">
<modified>
<file fid="commandlineclient.ja-20070416055005-sc8qpmryqhgx5f65-24">
BazaarClient/src/main/org/vcs/bazaar/client/commandline/CommandLineClient.java
</file>
</modified>
<unknown>
<file>BazaarClient/src/main/org/vcs/bazaar/client/IPlugin.java</file>
<file>BazaarClient/src/main/org/vcs/bazaar/client/commandline/commands/Plugins.java</file>
</unknown>
</status>
xmlmissing
----------
**missing**: can contain: *<last_location>*, *<extra_revisions>* and *<missing_revisions>*.
**extra_revisions** and *<missing_revision>*: contains a *<logs>* element.
Example output:
::
<missing>
<last_location>
/Users/guillermo/Projects/BazaarEclipse/bzr-eclipse/trunk/
</last_location>
<extra_revisions size="1">
<logs>
<log>
<revno>116</revno>
<committer>
Guillermo Gonzalez <nospam@mail.com>
</committer>
<branch-nick>quickdiff-integration</branch-nick>
<timestamp>Fri 2007-12-21 19:34:45 -0300</timestamp>
<message>* merge with quickdiff branch</message>
</log>
</logs>
</extra_revisions>
</missing>
xmlannotate
-----------
**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="argentina@gmail.com" date="20080303">This is a test file.</entry>
<entry revno="6" author="guillo.gonzo@gmail.com" date="20070404"></entry>
<entry revno="3" author="argentina@gmail.com" date="20080303">It has multiple lines...</entry>
<entry revno="3" author="argentina@gmail.com" date="20080222">...just as an example :)</entry>
</annotation>
xmlinfo
-------
**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:
::
<info>
<layout>Repository tree</layout>
<formats>
<format>pack-0.92</format>
</formats>
<location>
<shared_repository>/home/beuno/test_project</shared_repository>
<repository_branch>.</repository_branch>
</location>
<related_branches>
<push_branch></push_branch>
<parent_branch>http://bazaar-vcs.org/bzr/bzr.dev/</parent_branch>
</related_branches>
</info>
xmlls
-----
**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:
::
<list>
<item>
<id>readme-20071029223614-87mcz42501p7wkmk-1</id>
<kind>file</kind>
<path>README</path>
<status_kind>versioned</status_kind>
</item>
</list>
xmlplugins
----------
**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 __init__.py file
Example output:
::
<plugins>
<plugin>
<name>xmloutput</name>
<version>0.8.4</version>
<path>/home/guillermo/.bazaar/plugins/xmloutput</path>
<doc>This plugin provides xml output for status, log, annotate, missing, info, version and plugins adding a --xml option to each</doc>
</plugin>
</plugins>:
xmlversion
----------
**version8* top level tag, contains *<bazaar>* and *<python>* tags.
**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:
::
<version>
<bazaar>
<version>1.16.1</version>
<bzrlib>/usr/lib/python2.6/dist-packages/bzrlib</bzrlib>
<configuration>/home/guillermo/.bazaar</configuration>
<log_file>/home/guillermo/.bzr.log</log_file>
<copyright>Copyright 2005, 2006, 2007, 2008, 2009 Canonical Ltd.http://bazaar-vcs.org/bzr 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>
</bazaar>
<python>
<executable>/usr/bin/python</executable>
<version>2.6.2.final.0</version>
<standard_library>/usr/lib/python2.6</standard_library>
</python>
</version>