Bazaar Release Notes — Breezy 3.0.2dev documentation

Table of Contents (3.0.2dev)

# Bazaar Release Notes

## bzr 1.7.1

Released

  2008-10-01

No changes from 1.7.1rc1.

## bzr 1.7.1rc1

Released

  2008-09-24

This release just includes an update to how the merge algorithm handles file paths when we encounter complex history.

### Features

- If we encounter a criss-cross in history, use information from direct Least Common Ancestors to resolve inventory shape (locations of files, adds, deletes, etc). This is similar in concept to using `--lca` for merging file texts, only applied to paths. (John Arbash Meinel)

## bzr 1.7

Released

  2008-09-23

This release includes many bug fixes and a few performance and feature improvements. `bzr rm` will now scan for missing files and remove them, like how `bzr add` scans for unknown files and adds them. A bit more polish has been applied to the stacking code. The b-tree indexing code has been brought in, with an eye on using it in a future repository format. There are only minor installer changes since bzr-1.7rc2.

### Features

- Some small updates to the win32 installer. Include localization files found in plugins, and include the builtin distutils as part of packaging qbzr. (Mark Hammond)

## bzr 1.7rc2

Released

  2008-09-17

A few bug fixes from 1.7rc1. The biggest change is a new `RemoteBranch.get_stacked_on_url` RPC. This allows clients that are trying to access a Stacked branch over the smart protocol, to properly connect to the stacked-on location.

### Bug Fixes

- Branching from a shared repository on a smart server into a new repository now preserves the repository format. (Andrew Bennetts, #269214)

- Branching from a stacked branch via `bzr+ssh` can properly connect to the stacked-on branch. (Martin Pool, #261315)

- `bzr init` no longer re-opens the BzrDir multiple times. (Vincent Ladeuil)

- Fix ‘_in_buffer’ AttributeError when using the -Dhpss debug flag. (Andrew Bennetts)

## bzr 1.7rc1

Released

  2008-09-09

This release candidate for bzr 1.7 has several bug fixes and a few performance and feature improvements. `bzr rm` will now scan for missing files and remove them, like how `bzr add` scans for unknown files and adds them. A bit more polish has been applied to the stacking code. The b-tree indexing code has been brought in, with an eye on using it in a future repository format.

### Changes

- `bzr export` can now export a subdirectory of a project. (Robert Collins)

- `bzr remove-tree` will now refuse to remove a tree with uncommitted changes, unless the `--force` option is specified. (Lukáš Lalinský, #74101)

- `bzr rm` will now scan for files that are missing and remove just them automatically, much as `bzr add` scans for new files that are not ignored and adds them automatically. (Robert Collins)

### Features

- Support for GSSAPI authentication when using FTP as documented in RFC2228. (Jelmer Vernooij, #49623)

- Add support for IPv6 in the smart server. (Jelmer Vernooij, #165014)

### Improvements

- A URL like `log+file:///tmp` will log all access to that Transport to `.bzr.log`, which may help in debugging or profiling. (Martin Pool)

- `bzr branch` and `bzr push` use the default stacking policy if the branch format supports it. (Aaron Bentley)

- `bzr init` and `bzr init-repo` will now print out the same as `bzr info` if it completed successfully. (Marius Kruger)

- `bzr uncommit` logs the old tip revision id, and displays how to restore the branch to that tip using `bzr pull`. This allows you to recover if you realize you uncommitted the wrong thing. (John Arbash Meinel)

- Fix problems in accessing stacked repositories over `bzr://`. (Martin Pool, #261315)

- `SFTPTransport.readv()` was accidentally using `list += string`, which ‘works’, but adds each character separately to the list, rather than using `list.append(string)`. Fixing this makes the SFTP transport a little bit faster (~20%) and use a bit less memory. (John Arbash Meinel)

- When reading index files, if we happen to read the whole file in a single request treat it as a `_buffer_all` request. This happens most often on small indexes over remote transports, where we default to reading 64kB. It saves a round trip for each small index during fetch operations. Also, if we have read more than 50% of an index file, trigger a `_buffer_all` on the next request. This works around some inefficiencies because reads don’t fall neatly on page boundaries, so we would ignore those bytes, but request them again later. This could trigger a total read size of more than the whole file. (John Arbash Meinel)

### Bug Fixes

- `bzr rm` is now aliased to `bzr del` for the convenience of svn users. (Robert Collins, #205416)

- Catch the infamous “select/poll returned error” which occurs when pycurl try to send a body request to an HTTP/1.0 server which has already refused to handle the request. (Vincent Ladeuil, #225020)

- Fix `ObjectNotLocked` errors when using various commands (including `bzr cat` and `bzr annotate`) in combination with a smart server URL. (Andrew Bennetts, #237067)

- `FTPTransport.stat()` would return `0000` as the permission bits for the containing `.bzr/` directory (it does not implement permissions). This would cause us to set all subdirectories to `0700` and files to `0600` rather than leaving them unmodified. Now we ignore `0000` as the permissions and assume they are invalid. (John Arbash Meinel, #259855)

- Merging from a previously joined branch will no longer cause a traceback. (Jelmer Vernooij, #203376)

- Pack operations on windows network shares will work even with large files. (Robert Collins, #255656)

- Running `bzr st PATH_TO_TREE` will no longer suppress merge status. Status is also about 7% faster on mozilla sized trees when the path to the root of the tree has been given. Users of the internal `show_tree_status` function should be aware that the show_pending flag is now authoritative for showing pending merges, as it was originally. (Robert Collins, #255204)

- Set valid default _param_name for Option so that ListOption can embed ‘-‘ in names. (Vincent Ladeuil, #263249)

- Show proper error rather than traceback when an unknown revision id is specified to `bzr cat-revision`. (Jelmer Vernooij, #175569)

- Trailing text in the dirstate file could cause the C dirstate parser to try to allocate an invalid amount of memory. We now properly check and test for parsing a dirstate with invalid trailing data. (John Arbash Meinel, #186014)

- Unexpected error responses from a smart server no longer cause the client to traceback. (Andrew Bennetts, #263527)

- Use a Windows api function to get a Unicode host name, rather than assuming the host name is ascii. (Mark Hammond, John Arbash Meinel, #256550)

- `WorkingTree4` trees will now correctly report missing-and-new paths in the output of `iter_changes`. (Robert Collins)

### Documentation

- Updated developer documentation. (Martin Pool)

### API Changes

- Exporters now take 4 parameters. (Robert Collins)

- `Tree.iter_changes` will now return False for the content change field when a file is missing in the basis tree and not present in the target tree. Previously it returned True unconditionally. (Robert Collins)

- The deprecated `Branch.abspath` and unimplemented `Branch.rename_one` and `Branch.move` were removed. (Jelmer Vernooij)

- BzrDir.clone_on_transport implementations must now accept a stacked_on parameter. (Aaron Bentley)

- BzrDir.cloning_metadir implementations must now take a require_stacking parameter. (Aaron Bentley)

### Testing

- `addCleanup` now takes `*arguments` and `**keyword_arguments` which are then passed to the cleanup callable as it is run. In addition, addCleanup no longer requires that the callables passed to it be unique. (Jonathan Lange)

- Fix some tests that fail on Windows because files are deleted while still in use. (Mark Hammond)

- `selftest`’s `--starting-with` option can now use predefined prefixes so that one can say `bzr selftest -s bp.loom` instead of `bzr selftest -s bzrlib.plugins.loom`. (Vincent Ladeuil)

- `selftest`’s `--starting-with` option now accepts multiple values. (Vincent Ladeuil)

### Internals

- A new plugin interface, `bzrlib.log.log_adapters`, has been added. This allows dynamic log output filtering by plugins. (Robert Collins)

- `bzrlib.btree_index` is now available, providing a b-tree index layer. The design is memory conservative (limited memory cache), faster to seek (approx 100 nodes per page, gives 100-way fan out), and stores compressed pages allowing more keys per page. (Robert Collins, John Arbash Meinel)

- `bzrlib.diff.DiffTree.show_diff` now skips changes where the kind is unknown in both source and target. (Robert Collins, Aaron Bentley)

- `GraphIndexBuilder.add_node` and `BTreeBuilder` have been streamlined a bit. This should make creating large indexes faster. (In benchmarking, it now takes less time to create a BTree index than it takes to read the GraphIndex one.) (John Arbash Meinel)

- Mail clients for bzr send are now listed in a registry. This allows plugins to add new clients by registering them with `bzrlib.mail_client.mail_client_registry`. All of the built-in clients now use this mechanism. (Neil Martinsen-Burrell)