Size: 9484
Comment: added missing xml formats (xmlls, xmlplugins, xmlversion)
|
Size: 9499
Comment: fix missing tag
|
Deletions are marked like this. | Additions are marked like this. |
Line 249: | Line 249: |
</plugin> |
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
- log
- 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)
- this starts the xmlrpc service, that provides the following functions:
- stop-xmlrpc
Download
Latest release - 0.8.4
Windows standalone installer for the Bazaar packages from WindowsDownloads (bzr-setup-*.exe)
Branch:
bzr branch lp:bzr-xmloutput
Experimental branch with a threaded xmlrpc service:
bzr branch lp:~verterok/bzr-xmloutput/threads
Differences with builtins commands
xmlls: when the --ignored flag is used, it includes the ignore pattern
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
Commands to implement:
- tags?
- testament?
TODO
- tests for xmlplugins, xmlmissing and xmlls
Roadmap
Contributors
- Martin Albisetti
- Vincent Ladeuil
- Adrian Wilkins
- Aaron Bentley
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:
<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>: contain 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.
<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.
<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.
<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.5</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
version 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>