Bazaar

Bazaar

 




Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

Differences between revisions 43 and 44
Revision 43 as of 2009-05-14 20:14:12
Size: 5643
Editor: aglenyoung
Comment: Minor formatting change due to wiki upgrade.
Revision 44 as of 2009-07-04 19:32:37
Size: 9484
Editor: verterok
Comment: added missing xml formats (xmlls, xmlplugins, xmlversion)
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from bzr-xmloutput
This plugin adds an option (--xml) to log and provides an xml version of some builtinss commands that generate XML output. Also it provides a xmlrpc service
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.
Line 20: Line 19:
Line 40: Line 40:
=== 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

Line 44: Line 61:
=== TODO ===
 * tests for xmlplugins, xmlmissing and xmlls
Line 49: Line 69:
=== Contributors ===
 * Martin Albisetti
 * Vincent Ladeuil
 * Adrian Wilkins
 * Aaron Bentley
                                                   
Line 51: Line 77:
=== Log === === xmllog or log --xml ===
Line 78: Line 104:
=== Status === === xmlstatus ===
Line 102: Line 128:
=== Missing === === xmlmissing ===
Line 129: Line 155:
=== Annotate === === xmlannotate ===
Line 143: Line 169:
=== Info === === xmlinfo ===
Line 170: Line 197:


=== 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>
</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>}}}

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)
  • stop-xmlrpc

Download

Latest release - 0.8.4

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

See XMLOutput/SprintNotes

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 &lt;fake@no-mail.net&gt;</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 &lt;nospam@mail.com&gt;
                                </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>
</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>