Breezy Developer Document Catalog¶
Overall developer documentation¶
- Developer Guide
- Architectural Overview — describes some of the most important classes and concepts.
- breezy API reference (external link) — automatically generated API reference information
- Integrating with Breezy (wiki) — a guide for writing Python programs that work with Breezy.
- Revision Properties — An application can set arbitrary per-revision key/value pairs to store app-specific data.
- Testing — Guide to writing tests for Breezy.
- Code Review.
- Breezy Code Style Guide.
- Writing plugins — specific advice on writing Breezy plugins. (web link)
- Documenting changes.
Process¶
- Releasing Breezy — Checklist to make a release of Breezy.
- Managing the Breezy PPA — Packaging Breezy for Ubuntu.
- Giving back (wiki) — How to get your changes to Breezy integrated into a release.
- Profiling notes — Instructions on how to profile brz code and visualize the results.
- EC2 resources — A team resource for Windows packaging and testing, and Ubuntu testing.
- Tracking Bugs in Breezy — How we use the bug tracker.
Architecture overviews¶
- Transports — Transport virtual filesystem abstraction.
Plans¶
- Performance roadmap — The roadmap for fixing performance in brz over the next few releases.
- Co-located branches — Planned(?) support for storing multiple branches in one file-system directory.
- Breezy Windows Shell Extension Options — Implementation strategy for Breezy Windows Shell Extensions, aka TortoiseBzr.
- CHK Optimized index
Specifications¶
- API versioning — breezy API versioning.
- Apport error reporting — Capture data to report bugs.
- Authentication ring — Configuring authentication.
- Bundles — All about brz bundles.
- Container format — Notes on a container format for streaming and storing Breezy data.
- Groupcompress — Notes on the compression technology used in CHK repositories.
- Indices — The index facilities available within breezy.
- Inventories — Tree shape abstraction.
- LCA merge — A nice new merge algorithm.
- Network protocol — Custom network protocol.
- Plugin APIs — APIs plugins should use.
- Repositories — What repositories do and are used for.
- Repository stream — Notes on streaming data for repositories (a layer above the container format).
- Integration Guide — A guide to integrate breezy into any python application.
- Breezy and case-insensitive file systems — How Breezy operates on case-insensitive file systems such as commonly found on Windows, USB sticks, etc.
- Development repository formats — How to work with repository formats that are still under development. Contains instructions for those implementing new formats, of course, but also for (bleeding-edge) end users of those formats.
Data formats¶
- Knit pack repositories — KnitPack repositories (new in Bazaar 0.92).
Implementation notes¶
- BTree Index Prefetch — How brz decides to pre-read extra nodes in the btree index.
- Computing last_modified values for inventory entries
- Content filtering
- LCA Tree Merging — Merging tree-shape when there is not a single unique ancestor (criss-cross merge).
Miscellaneous¶
- dirstate — An observation re. the dirstate file
- “brz update” performance analysis — “brz update” performance analysis