Bazaar plugin registry
What is a plugin?
A plugin is an external component for Bazaar that extends Bazaar's functionality, by adding or replacing code. Plugins are often a way for developers to test new features prior to inclusion in the core codebase. Plugins can do a variety of things, including overriding commands, adding new commands, providing additional network transports, customizing log output, etc. Bazaar's developers give the plugin architecture a lot of attention, ensuring that it's one of the most comprehensive revision control plugin systems available.
Available plugins
This section lists plugins for Bazaar that are available under a free software licence. Please do not add non-free plug-ins to this page unless they are read-only, in the sense that they are designed primarily to provide a migration pathway from a non-free revision control system to Bazaar.
How to read these listings:
Names with links are included in the Bazaar Plugins Guide. Click on the link for more detailed documentation.
Branch and Development URLs point to bzr branches, which may look like empty directories if you open them in a web browser. Instead, use bzr branch <url> to download them. You can then keep them up to date simply by changing into the directory with the plugin code and typing bzr pull, which will update that plugin to the latest revision of that branch.
At right side of tables you can see info about plugin compatibility with different platforms. If a platform isn't listed, it may work on that platform but it hasn't been tested there. If a platform image is given with a cross through it, the plugin is known not to work on that platform.
Web
Name |
Description |
URLs |
Owner |
Platforms |
Integration with https://launchpad.net |
|
Bazaar Developers |
|
|
Recommended web interface for Bazaar (see also WebInterfaces for information about non-plugin web interfaces to Bazaar) |
|
|||
Support writing to WebDAV branches |
|
|||
webserve |
A web interface to Bazaar (see also WebInterfaces for information about non-plugin web interfaces to Bazaar) |
|
||
adds a "--xml" option to log, and provides an "xml version" of the following bazaar commands: log, status, annotate, missing, info, plugins and version, ls |
|
Desktop
Name |
Description |
URLs |
Owner |
Platforms |
encdiff |
Yet another diff plugin. this plugin detect file encoding and convert it(UTF-8/EUC-JP/SJIS and so on) automatically to default one(may be cp932 or something else). |
|
||
Desktop application for Windows, GNOME, KDE and OS X. Wraps QBzr and/or bzr-gtk applets. |
|
|||
Calls external merge tools to help resolve conflicts |
|
|||
commit-selector |
Simple helper to select files to commit. qcommit (from QBzr) and gcommit (from BzrGtk) are better alternatives. |
|
||
Graphical diff tools |
|
|||
GTK+ frontend of some Bazaar commands |
|
|||
interactive |
Adds user interaction to the core commands (only commit and record-patch for now) |
|
||
proe |
Helper tools to use Bazaar together with PTC's Pro/ENGINEER |
|
||
Qt frontend for some of Bazaar commands |
|
|||
Display differences between revisions of a file, using vimdiff |
|
|||
Bazaar GUI tightly integrated with Nautilus and Launchpad |
|
Publishing
Name |
Description |
URLs |
Owner |
Platforms |
Automatically update a remote working copy upon commit. |
|
|||
nicehtml |
generates an extended branch html information page using Jinja and pygments |
|
||
pastebin |
Paste a patch to pastebin and return the pastebin url. |
|
||
Provide the "push-and-update" command to automate the running of 'ssh remote bzr update path' after pushing to sftp://remote/path. This allows us to keep a remote working tree up to date. |
|
|||
Push a repository to a remote location, along with all its branches |
|
|||
Upload *just* the working tree, and keep track of what has been sent for incremental uploads. Mostly oriented towards web development. |
|
Change notification
Name |
Description |
URLs |
Owner |
Platforms |
Create ATOM feeds in .bzr/branch/branch.atom during commit/push/pull (see also FeedGenerators for information about non-plugin feed generators) |
|
|||
Submit commits to CIA |
|
|||
Send email after commit, e.g. to bazaar-commits mailing list |
|
|||
publish-bot |
Publish commits to IRC |
|
||
shell-hooks |
Support for running external commands in hooks. |
|
Change control
Name |
Description |
URLs |
Owner |
Platforms |
Pre-commit hook to check files for correct line-endings |
|
|||
Submit commands to a PQM service |
|
|||
"Poor man's PQM": specify a command that must succeed before a change is allowed in a branch |
|
|||
Help avoid committing trailing white space and other undesired text. |
|
History exploration
Name |
Description |
URLs |
Owner |
Platforms |
Find the revision introducing a bug with a binary search |
|
|
||
countlog |
Easy activity summary showing how many times each file is changed and when most recent change took place |
Pileofrogs |
|
|
Diff statistics |
|
|||
file-revno |
Efficiently returns the revision number(s) modifying a file. |
|
||
gnulog |
GNU changelog formatter for bzr log |
|
||
htmllog |
Bzr log in html format. |
|
||
grep |
Grep through files known to bzr (experimental) |
|
||
hgrep |
Grep through history (experimental) |
|
||
lastlog |
Shows most recent commit messages |
|
||
Generate full text indices of branch history. Can be queried from the command line or loggerhead. |
|
|||
Show stats like authors or commits over time |
|
Productivity
Name |
Description |
URLs |
Owner |
Platforms |
Automatically detect renames/moves in the working tree. |
Lukáš Lalinský |
|
||
Bookmarking system for often used branch locations/URLs. |
Lukáš Lalinský |
|
||
Miscellaneous enhancements |
|
|||
commitfromnews |
Create default commit messages from changes to NEWS files. |
|
||
extcommand |
Support for calling bzr-CMD scripts or aliases involving external programs from within bzr. |
Lukáš Lalinský |
|
|
externals |
Support external branches |
Eugene Tarasenko |
|
|
ezbzr |
Iterates a command for each revno |
|
||
lightweight-branch |
Lightweight branching of lightweight checkouts |
|
||
Make it easier to merge another project into this one |
|
|||
recursive-upgrade |
Adds --recurse option to upgrade command |
|
||
repoalias |
"repo:" shortcut for the repository root |
Marien Zwart |
|
|
rxrename |
Renames multiple files using a regexp |
|
||
Organizing set of VCS branches as united project (experimental unofficial emulation of nested trees) |
|
|||
touch |
Like *nix touch(1) but for bzr |
|
||
undelete |
Step through history and undelete to last known version of file(s)/dir(s). Allows searching history using regex for filename. |
|
||
update-mirrors |
Updates all the branches in a directory |
|
Patch management
Name |
Description |
URLs |
Owner |
Platforms |
Manage a loom of patches (like Mercurial Queues) |
|
|||
Work on large changes as smaller pieces |
|
|||
Rebase (like git-rebase) |
|
|||
remove-revisions |
Completely remove revisions from a repository |
|
Foreign branches
Name |
Description |
URLs |
Owner |
Platforms |
cvsserve |
Export Bazaar branches to CVS clients |
|
||
Support for Git branches |
|
|||
Support for Mercurial branches |
|
|||
Support for Subversion branches |
|
|||
Support for Microsoft Team Foundation Server branches |
? |
|||
Plugin that indicates CVS is unsupported |
|
|||
Plugin that indicates Monotone is unsupported |
|
Migration
Name |
Description |
URLs |
Owner |
Platforms |
Convert Baz 1.x to Bazaar-NG |
|
|||
Import CVS branches into Bazaar, using cvsps to extract patchsets. Supports importing multiple branches |
|
|||
Fast loading of history into Bazaar from most popular tools. Supports multiple branches and mirroring. |
|
Performance tuning
Name |
Description |
URLs |
Owner |
Platforms |
Cache DNS requests, greatly speeding up urllib.urlopen requests |
|
|||
gzipped-bundle |
Allow create and merge gzipped bundles |
|
||
Cache branch history for faster log and revno lookup |
|
|||
network-manager |
Automatically use --local when network manager says connection is down. |
|
||
pack-indices |
Re-pack knit indices to give smaller downloads. |
|
||
quickbranch |
Make .bzrcache.gz of the .bzr directory at every commit (fast branching) |
|
||
Keep bzrlib loaded in memory |
|
Diagnostics
Name |
Description |
URLs |
Owner |
Platforms |
depend |
Show versions of installed libraries used by bzr |
|
Testing
Name |
Description |
URLs |
Owner |
Platforms |
benchdisplay |
Format bzr benchmark times as a nice HTML page |
Carl Friedrich Bolz |
|
|
usertest |
Benchmark Bazaar on user provided source trees. |
|
Linux/UNIX specific
Name |
Description |
URLs |
Owner |
Platforms |
bash-completion |
BASH completion for BZR |
|
||
Build Debian packages from Bazaar branches |
|
|||
Integrate bazaar with dbus |
|
|||
notification |
Send freedesktop.org notification dialogs when push or pull completes |
|
||
lessdiff |
Bzr diff in colour and paged with less (or $PAGER) |
|
||
lesslog |
Bzr log paged with less (or $PAGER) |
|
||
Run commands producing long output in a pager ($PAGER or less). This is similar to the lastlog plugin, but more generic and supports more commands (log, diff, cat, help, status). |
Lukáš Lalinský |
|
||
tcsh-completion |
TCSH completion for BZR |
|
Windows specific
Name |
Description |
URLs |
Owner |
Platforms |
diff plugin for office document such as Word/Excel and so on. |
|
|||
Control x-bit inside of bzr inventory. Primarily intended to use on win32 |
|
OS X specific
Name |
Description |
URLs |
Owner |
Platforms |
mail-app |
Use MacOS X's Mail.app to compose and send emails |
|
Miscellaneous
Name |
Description |
URLs |
Owner |
Platforms |
setuptoolsbzr |
Allows Python's setuptools package to grok Bazaar the same way it currently groks CVS and SVN. This is really a plugin for setuptools |
|
Experimental
Name |
Description |
URLs |
Owner |
Platforms |
colocated |
Colocated branches support (aka git-style branches) |
|
||
win32symlinks |
Provide support for bzr internals for fake symlinks in cygwin format on win32 native. (Warning: this plugin no more maintained by author) |
|
Old plugins
Out of Date
These plugins are incompatible with recent releases of Bazaar, or the URL gives 404 error.
|
Platform |
||||
Name |
Part of |
Owner |
GNU/Linux |
Windows |
Mac |
Description |
Home |
||||
fileid |
None |
|
? |
? |
|
Modifies file-ids according to a list |
|||||
graft |
None |
|
? |
? |
|
Graft branches onto the end of others |
|||||
release |
ezbzr |
|
? |
? |
|
Merges a local branch into a remote one |
|||||
reweave |
None |
|
? |
? |
|
Update history, inserting ghosts |
|||||
None |
|
|
|
||
Submit changes by email and verify senders identity through gpg before applying it. |
|||||
tags |
None |
|
? |
? |
|
Explicitly versioned tags. |
|||||
atomlog |
None |
? |
? |
? |
|
Bzr log in atom format. |
Obsolete
There are a number of obsolete plugins.
Managing plugins
Listing the installed plugins
A few plugins are installed by default by the Windows and OS X installers. To see the plugins already installed and their locations, use the Tools > Plugins menu option in Bazaar Explorer or run:
- bzr plugins
on the command line.
Installing a plugin
Installing a plugin is very easy! One can either install a plugin systemwide or on a user-by-user basis. Both methods involve creating a "plugins" directory, within which one places plugins in subdirectories. For example, "plugins/bzrtools/".
Two locations are currently checked: the bzrlib/plugins directory (typically found in something like /usr/lib/python2.6/site-packages/bzrlib/plugins/) and $HOME/.bazaar/plugins/ (or on Windows, $APPDATA/bazaar/2.0/plugins).
If you want to install a plugin into your .bazaar/plugins/ directory, just move the extension directory in there and then run python setup.py build_ext -i.
One can additionally override the home plugins by setting the environment variable BZR_PLUGIN_PATH to a directory that contains plugins. The installation of a plugin can be checked by running bzr plugins at any time. New commands can be seen by running bzr help commands .
Plugin folder names may not contain dashes like bzr-gtk. Instead, rename such plugin directories to something without a dash, e.g., gtk.
Additional dashes may be converted to underscores, for example:
bzr branch lp:bzr-push-and-update ~/.bazaar/plugins/push_and_update
Tip for developers
If you are tracking the "tip" of Bazaar, using the cutting edge development version and keeping it up to date, then you can easily do the same with most of the plugins. For example, to install the bzrtools plugin for your main user account, run:
bzr branch lp:bzrtools ~/.bazaar/plugins/bzrtools
After doing this, you can update the bzrtools plugin to its tip at any time with:
cd ~/.bazaar/plugins/bzrtools; bzr pull; cd -