TortoiseBZR is a Windows shell extension (similar to TortoiseCVS, TortoiseSVN or TortoiseHG ) for viewing the source control status of a bzr tree from within Windows Explorer.
Szilveszter made a first proof-of-concept during the sprint in Amsterdam in 2007 using file type handlers. Wouter van Heyst and Jelmer Vernooij started the Python implementation a few weeks later. Henry Ludemann took that code and improved it a bit. Alexander Haro has picked up the project and worked on it as part of Google's Summer of Code.
Status
- Icon overlays work.
- Context Menu hooks allow commit, checkout, diff, about, help, and preferences.
- Dialogs start in an external process.
- Debugging output to a console window.
TODO
- Share a common 'source control' shell icon overlay extension with tortoisecvs (to avoid using too many icon overlays).
- Hook in the meld diff / merge utility.
- Enable add, merge, log, revert, etc context menu options.
- Only display relevant context menu items.
- Move away from gtk and use Windows dialog to match the look of TortoiseSVN/CVS.
- Integrate plugin facility.
Development
You can get a copy of TortoiseBZR by branching this location: https://code.launchpad.net/~amduser29/tortoisebzr/trunk. Note that it needs Python for Windows (http://sourceforge.net/project/showfiles.php?group_id=78018).
It is recommended you restart explorer after changing either the icon handler or the context menu. To do this in XP/2000, go to the start menu then to shutdown
Some instructions:
You can test it by running tortoise-bzr.py (so long as bzrlib is in the python path and you have gtk+ and pygtk installed, see WindowsInstall).
set PYTHONPATH=c:\somepath\bzr.dev python tortoise-bzr.py
- Unregister it by running
python tortoise-bzr.py --unregister
- To see debugging output run
python tortoise-bzr.py --debugging-output
Screen Shots
Useful Links
Useful Tips
In order to register TortoiseBZR in Vista you must run python from an command prompt with Administrator privileges. To start a command prompt with Administrator privileges, hold CTRL and SHIFT while starting cmd.exe.
When making changes to either tortoise-bzr.py, contextmenu.py, or iconoverlay.py it may be necessary to restart explorer which can be done with the following command
python -c "import ctypes; ctypes.windll.shell32.SHChangeNotify(0x8000000, 0, 0, 0)"
You may want to set the following registry key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\AlwaysUnloadDLL
to make sure you can actually changes files that are in use.
It may also be useful to set a new value /DesktopProcess/ to 1 in
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
This will force Explorer to create a separate process per window. Not very efficient, but very useful when debugging.
