Table of Contents (3.3.22)

# Bazaar Release Notes

## bzr 0.17

Released:

  2007-06-18

### Bugfixes

- Fix crash of commit due to wrong lookup of filesystem encoding. (Colin Watson, #120647)

- Revert logging just to stderr in commit as broke unicode filenames. (Aaron Bentley, Ian Clatworthy, #120930)

## bzr 0.17rc1

Released:

  2007-06-12

### Notes When Upgrading

- The kind() and is_executable() APIs on the WorkingTree interface no longer implicitly (read) locks and unlocks the tree. This might impact some plug-ins and tools using this part of the API. If you find an issue that may be caused by this change, please let us know, particularly the plug-in/tool maintainer. If encountered, the API fix is to surround kind() and is_executable() calls with lock_read() and unlock() like so:

      work_tree.lock_read()
      try:
          kind = work_tree.kind(...)
      finally:
          work_tree.unlock()

### Internals

- Rework of LogFormatter API to provide beginning/end of log hooks and to encapsulate the details of the revision to be logged in a LogRevision object. In long log formats, merge revision ids are only shown when –show-ids is specified, and are labelled “revision-id:”, as per mainline revisions, instead of “merged:”. (Kent Gibson)

- New `BranchBuilder` API which allows the construction of particular histories quickly. Useful for testing and potentially other applications too. (Robert Collins)

### Improvements

- There are two new help topics, working-trees and repositories that attempt to explain these concepts. (James Westby, John Arbash Meinel, Aaron Bentley)

- Added `bzr log --limit` to report a limited number of revisions. (Kent Gibson, #3659)

- Revert does not try to preserve file contents that were originally produced by reverting to a historical revision. (Aaron Bentley)

- `bzr log --short` now includes `[merge]` for revisions which have more than one parent. This is a small improvement to help understanding what changes have occurred (John Arbash Meinel, #83887)

- TreeTransform avoids many renames when contructing large trees, improving speed. 3.25x speedups have been observed for construction of kernel-sized-trees, and checkouts are 1.28x faster. (Aaron Bentley)

- Commit on large trees is now faster. In my environment, a commit of a small change to the Mozilla tree (55k files) has dropped from 66 seconds to 32 seconds. For a small tree of 600 files, commit of a small change is 33% faster. (Ian Clatworthy)

- New –create-prefix option to bzr init, like for push. (Daniel Watkins, #56322)

### Bugfixes

- `bzr push` should only connect to the remote location one time. We have been connecting 3 times because we forget to pass around the Transport object. This adds `BzrDir.clone_on_transport()`, so that we can pass in the Transport that we already have. (John Arbash Meinel, #75721)

- `DirState.set_state_from_inventory()` needs to properly order based on split paths, not just string paths. (John Arbash Meinel, #115947)

- Let TestUIFactoy encode the password prompt with its own stdout. (Vincent Ladeuil, #110204)

- pycurl should take use the range header that takes the range hint into account. (Vincent Ladeuil, #112719)

- WorkingTree4.get_file_sha1 no longer raises an exception when invoked on a missing file. (Aaron Bentley, #118186)

- WorkingTree.remove works correctly with tree references, and when pwd is not the tree root. (Aaron Bentley)

- Merge no longer fails when a file is renamed in one tree and deleted in the other. (Aaron Bentley, #110279)

- `revision-info` now accepts dotted revnos, doesn’t require a tree, and defaults to the last revision (Matthew Fuller, #90048)

- Tests no longer fail when BZR_REMOTE_PATH is set in the environment. (Daniel Watkins, #111958)

- `bzr branch -r revid:foo` can be used to branch any revision in your repository. (Previously Branch6 only supported revisions in your mainline). (John Arbash Meinel, #115343)