What is a Bazaar 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.
The command bzr plugins will show all the plugins currently installed and the locations they are loaded from.
Contents
How to Install 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.4/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 .
Since Bazaar 0.15, the plugin folders 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 -
Writing a plugin
See the WritingPlugins page for how to write a plugin.
Lists of 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: Most 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 operating systems. See legend.
Extensions to existing Bazaar commands
|
Platform |
||||
Name |
Part of |
Owner |
GNU/Linux |
Windows |
Mac |
Description |
Home |
||||
atomlog |
None |
|
|
|
|
Bzr log in atom format. |
|||||
bzr-xmloutput |
None |
|
|
|
|
add --xml to log, status, annotate, missing, info, version and plugins |
|||||
None |
|
|
|
||
Simple helper to select files to commit. qcommit (from QBzr) and gcommit (from BzrGtk) are better alternatives. |
|||||
countlog |
None |
Pileofrogs |
|
? |
? |
Easy activity summary showing how many times each file is changed and when most recent change took place |
|||||
None |
x |
|
x |
||
diff plugin for office document such as Word/Excel and so on. |
|||||
None |
|
|
? |
||
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). |
|||||
None |
? |
|
? |
||
diff plugin for external diff tools. |
|||||
gnulog |
None |
|
|
|
|
GNU changelog formatter for bzr log |
|||||
gzipped_bundle |
None |
|
|
|
|
Allow create and merge gzipped bundles |
|||||
htmllog |
None |
|
|
|
|
Bzr log in html format. |
|||||
nicehtml |
None |
|
? |
? |
|
generates an extended branch html information page using Jinja and pygments |
|||||
interactive |
None |
|
|
? |
|
Adds user interaction to the core commands (only commit and record-patch for now) |
|||||
lastlog |
None |
|
|
|
|
Shows most recent commit messages |
|||||
lessdiff |
None |
|
X? |
? |
|
Bzr diff in colour and paged with less (or $PAGER) |
|||||
lesslog |
None |
|
X |
? |
|
Bzr log paged with less (or $PAGER) |
|||||
lightweight branching |
None |
|
|
|
|
Lightweight branching of lightweight checkouts |
|||||
merge-into |
None |
|
|
|
|
Make it easier to merge another project into this one |
|||||
pager |
None |
Lukáš Lalinský |
|
X |
|
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). |
|||||
push-and-update |
None |
|
|
|
|
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. |
|||||
GUI (Graphical User Interfaces for Bazaar)
|
Platform |
||||
Name |
Part of |
Owner |
GNU/Linux |
Windows |
Mac |
Description |
Home |
||||
None |
|
|
|
||
Branch Visualization |
|||||
difftools |
None |
|
|
|
|
Graphical diff tools |
|||||
None |
|
|
|
||
Qt frontend for some of Bazaar commands |
|||||
Interoperability with other Version Control Systems
(See also BzrMigration)
|
Platform |
||||
Name |
Part of |
Owner |
GNU/Linux |
Windows |
Mac |
Description |
Home |
||||
baz-import |
|
? |
? |
||
Convert Baz 1.x to Bazaar-NG |
See BzrTools |
||||
bzrcvsserve |
BzrCVSServe |
|
? |
? |
|
Export Bazaar branches to CVS clients |
|||||
cvsps-import |
|
|
? |
? |
|
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. |
|||||
None |
|
X |
? |
||
Read-only support for Git branches |
|||||
None |
|
? |
? |
||
Read-only support for Mercurial branches |
|||||
None |
|
|
|
||
Support for Subversion branches |
|||||
Web interface
|
Platform |
||||
Name |
Part of |
Owner |
GNU/Linux |
Windows |
Mac |
Description |
Home |
||||
loggerhead |
None |
yes |
yes |
yes |
|
Recommended web interface for Bazaar (see also WebInterfaces for information about non-plugin web interfaces to Bazaar) |
|||||
webserve |
None |
|
? |
? |
|
A web interface to Bazaar (see also WebInterfaces for information about non-plugin web interfaces to Bazaar) |
Browse Download (dev version at URL to branch) |
||||
Miscellaneous
|
Platform |
||||
Name |
Part of |
Owner |
GNU/Linux |
Windows |
Mac |
Description |
Home |
||||
automv |
None |
Lukáš Lalinský |
|
? |
? |
Automatically detect renames/moves in the working tree. |
|||||
automirror |
None |
|
|
|
|
Automatically update a remote working copy upon commit. |
|||||
benchdisplay |
None |
Carl Friedrich Bolz |
|
? |
? |
Format bzr benchmark times as a nice HTML page |
|||||
bisect |
None |
|
|
? |
? |
Find the revision introducing a bug with a binary search |
|||||
branchfeed |
None |
|
|
|
|
Create ATOM feeds in .bzr/branch/branch.atom during commit/push/pull (see also FeedGenerators for information about non-plugin feed generators) |
|||||
bookmarks |
None |
Lukáš Lalinský |
|
|
? |
Bookmarking system for often used branch locations/URLs. |
|||||
builddeb |
None |
|
? |
? |
|
Build Debian packages from Bazaar branches |
|||||
bzr-bash-completion |
None |
Duc_Bao_Ta |
|
X |
X |
BASH completion for BZR |
|||||
bzr-tcsh-completion |
None |
|
X |
? |
|
TCSH completion for BZR |
|||||
bzr-pqm |
None |
|
? |
? |
|
Submit commands to a PQM service |
|||||
bzr-proe |
None |
|
|
|
|
Helper tools to use Bazaar together with PTC's Pro/ENGINEER |
|||||
bzr-search |
None |
|
|
|
|
Generate full text indices of branch history. Can be queried from the command line or loggerhead. |
Browse [lp:bzr-search Branch] |
||||
bzr-text-checker |
None |
|
|
|
|
Help avoid committing trailing white space and other undesired text. |
|||||
checkeol |
None |
? |
|
? |
|
Pre-commit hook to check files for correct line-endings |
|||||
None |
|
? |
? |
||
Submit commits to CIA |
|||||
colocated |
None |
|
? |
? |
|
Colocated branches support (aka git-style branches) |
|||||
dbus |
None |
|
? |
? |
|
Integrate bazaar with dbus |
|||||
depend |
None |
|
|
|
|
Show versions of installed libraries used by bzr |
|||||
diffstat |
None |
|
|
? |
|
Diff statistics |
|||||
dns_cache |
None |
|
? |
? |
|
Cache DNS requests, greatly speeding up urllib.urlopen requests |
|||||
None |
|
? |
? |
||
Send email after commit, e.g. to bazaar-commits mailing list |
|||||
extcommand |
None |
Lukáš Lalinský |
|
? |
? |
Support for calling bzr-CMD scripts or aliases involving external programs from within bzr. |
|||||
extmerge |
None |
|
? |
? |
|
Calls external merge tools to help resolve conflicts |
|||||
file-revno |
None |
|
|
|
|
Efficiently returns the revision number(s) modifying a file. |
|||||
foreach |
ezbzr |
|
? |
|
|
Iterates a command for each revno |
|||||
graph-ancestry |
|
|
|
||
Draw diagrams of branch history |
See BzrTools |
||||
grep |
None |
|
? |
|
|
Grep through files known to bzr (experimental) |
|||||
hgrep |
None |
|
? |
? |
|
Grep through history (experimental) |
|||||
network_manager |
None |
|
X |
X |
|
Automatically use --local when network manager says connection is down. |
|||||
notification |
None |
|
? |
? |
|
Send freedesktop.org notification dialogs when push or pull completes |
|||||
pack_indices |
None |
|
|
|
|
Re-pack knit indices to give smaller downloads. |
|||||
publish-bot |
None |
|
|
|
|
Publish commits to IRC |
|||||
quickbranch |
None |
|
? |
? |
|
Make .bzrcache.gz of the .bzr directory at every commit (fast branching) |
|||||
recursive-upgrade |
None |
|
|
|
|
Adds --recurse option to upgrade command |
|||||
remove-revisions |
None |
|
|
|
|
Completely remove revisions from a repository |
|||||
None |
|
? |
? |
||
Rebase (like git-rebase) |
|||||
repo-push |
None |
|
|
? |
|
Push a repository to a remote location, along with all its branches |
|||||
repoalias |
None |
Marien Zwart |
|
|
|
"repo:" shortcut for the repository root |
|||||
revnocache |
None |
|
|
|
|
Cache branch history for faster log and revno lookup |
|||||
rspush |
|
-? |
? |
||
Push a branch via rsync |
See BzrTools |
||||
|
|
|
|||
Temporarily set aside changes |
See BzrTools (dev version at http://michael.ellerman.id.au/bzr/plugins/shelf) |
||||
rxrename |
None |
|
? |
? |
|
Renames multiple files using a regexp |
|||||
None |
|
|
|
||
Organizing set of VCS branches as united project (experimental unofficial emulation of nested trees) |
|||||
service |
None |
|
? |
? |
|
Keep bzrlib loaded in memory |
|||||
setuptoolsbzr |
None |
|
? |
|
|
Allows Python's setuptools package to grok Bazaar the same way it currently groks CVS and SVN. This is really a plugin for setuptools |
https://launchpad.net/setuptoolsbzr |
||||
shell-hooks |
None |
|
? |
? |
|
Support for running external commands in hooks. |
|||||
stats |
None |
|
|
|
|
Show stats like authors or commits over time |
|||||
testrunner |
None |
|
? |
? |
|
"Poor man's PQM": specify a command that must succeed before a change is allowed in a branch |
|||||
touch |
None |
|
? |
|
|
Like *nix touch(1) but for bzr |
|||||
undelete |
None |
|
? |
? |
|
Step through history and undelete to last known version of file(s)/dir(s). Allows searching history using regex for filename. |
|||||
update-mirrors |
None |
|
? |
? |
|
Updates all the branches in a directory |
|||||
upload |
None |
|
|
|
|
Upload *just* the working tree, and keep track of what has been sent for incremental uploads. Mostly oriented towards web development. |
|||||
win32symlinks |
None |
X |
|
X |
|
Provide support for bzr internals for fake symlinks in cygwin format on win32 native. |
|||||
x-bit |
None |
? |
|
? |
|
Control x-bit inside of bzr inventory. Primarily intended to use on win32 |
|||||
None |
|
|
? |
||
Benchmark Bazaar on user provided source trees. |
|||||
vimdiff |
None |
|
? |
? |
|
Display differences between revisions of a file, using vimdiff |
|||||
webdav |
None |
|
? |
? |
|
Support writing to WebDAV branches |
|||||
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. |
|||||
Obsolete
There are a number of obsolete plugins.
