Bazaar Release Notes — Breezy 3.0.2dev documentation

Table of Contents (3.0.2dev)

# Bazaar Release Notes

## bzr 0.13

Released

  2006-12-05

No changes from 0.13rc

## bzr 0.13rc1

Released

  2006-11-27

### Improvements

- New command `bzr remove-tree` allows the removal of the working tree from a branch. (Daniel Silverstone)

- urllib uses shared keep-alive connections, so HTTP operations are substantially faster. (Vincent Ladeuil, #53654)

- `bzr export` allows an optional branch parameter, to export a bzr tree from some other URL. For example: `bzr export bzr.tar.gz http://bazaar-vcs.org/bzr/bzr.dev` (Daniel Silverstone)

- Added `bzr help topics` to the bzr help system. This gives a location for general information, outside of a specific command. This includes updates for `bzr help revisionspec` the first topic included. (Goffredo Baroncelli, John Arbash Meinel, #42714)

- WSGI-compatible HTTP smart server. See `doc/http_smart_server.txt`. (Andrew Bennetts)

- Knit files will now cache full texts only when the size of the deltas is as large as the size of the fulltext. (Or after 200 deltas, whichever comes first). This has the most benefit on large files with small changes, such as the inventory for a large project. (eg For a project with 2500 files, and 7500 revisions, it changes the size of inventory.knit from 11MB to 5.4MB) (John Arbash Meinel)

### Internals

- New -D option given before the command line turns on debugging output for particular areas. -Derror shows tracebacks on all errors. (Martin Pool)

- Clean up `bzr selftest --benchmark bundle` to correct an import, and remove benchmarks that take longer than 10min to run. (John Arbash Meinel)

- Use `time.time()` instead of `time.clock()` to decide on progress throttling. Because `time.clock()` is actually CPU time, so over a high-latency connection, too many updates get throttled. (John Arbash Meinel)

- `MemoryTransport.list_dir()` would strip the first character for files or directories in root directory. (John Arbash Meinel)

- New method `get_branch_reference` on ‘BzrDir’ allows the detection of branch references - which the smart server component needs.

- New `ChrootTransportDecorator`, accessible via the `chroot+` URL prefix. It disallows any access to locations above a set URL. (Andrew Bennetts)

### Bug Fixes

- Now `_KnitIndex` properly decode revision ids when loading index data. And optimize the knit index parsing code. (Dmitry Vasiliev, John Arbash Meinel)

- `bzrlib/bzrdir.py` was directly referencing `bzrlib.workingtree`, without importing it. This prevented `bzr upgrade` from working unless a plugin already imported `bzrlib.workingtree` (John Arbash Meinel, #70716)

- Suppress the traceback on invalid URLs (Vincent Ladeuil, #70803).

- Give nicer error message when an HTTP server returns a 403 error code. (Vincent Ladeuil, #57644).

- When a multi-range HTTP GET request fails, try a single range one. If it fails too, forget about ranges. Remember that until the death of the transport and propagates that to the clones. (Vincent Ladeuil, #62276, #62029).

- Handles user/passwords supplied in URL from command line (for the urllib implementation). Don’t request already known passwords (Vincent Ladeuil, #42383, #44647, #48527)

- `_KnitIndex.add_versions()` dictionary compresses revision ids as they are added. This fixes bug where fetching remote revisions records them as full references rather than integers. (John Arbash Meinel, #64789)

- `bzr ignore` strips trailing slashes in patterns. Also `bzr ignore` rejects absolute paths. (Kent Gibson, #4559)

- `bzr ignore` takes multiple arguments. (Cheuksan Edward Wang, #29488)

- mv correctly handles paths that traverse symlinks. (Aaron Bentley, #66964)

- Give nicer looking error messages when failing to connect over SSH. (John Arbash Meinel, #49172)

- Pushing to a remote branch does not currently update the remote working tree. After a remote push, `bzr status` and `bzr diff` on the remote machine now show that the working tree is out of date. (Cheuksan Edward Wang #48136)

- Use patiencediff instead of difflib for determining deltas to insert into knits. This avoids the O(N^3) behavior of difflib. Patience diff should be O(N^2). (Cheuksan Edward Wang, #65714)

- Running `bzr log` on nonexistent file gives an error instead of the entire log history. (Cheuksan Edward Wang #50793)

- `bzr cat` can look up contents of removed or renamed files. If the pathname is ambiguous, i.e. the files in the old and new trees have different id’s, the default is the file in the new tree. The user can use “–name-from-revision” to select the file in the old tree. (Cheuksan Edward Wang, #30190)

### Testing

- TestingHTTPRequestHandler really handles the Range header (previously it was ignoring it and returning the whole file,).